public static IListQueryBuilder AddFilterHandlers(this IListQueryBuilder listQuery, Type handlersType) { var methods = handlersType.GetMethods(BindingFlags.Static | BindingFlags.Public); foreach (var method in methods) { var handler = (ListQueryFilterHandler)ListQueryFilterHandler.CreateDelegate(typeof(ListQueryFilterHandler), method); //TODO: Cache these maybe??? //ListQueryFilterHandler handler = (where, filter, config) => //{ // method.Invoke(null, new object[] { where, filter, config }); //}; listQuery.Configuration.Handlers.Add(method.Name, handler); } return(listQuery); }
public static IListQueryBuilder AddFilterHandler(this IListQueryBuilder listQuery, string name, ListQueryFilterHandler handler) { listQuery.Configuration.Handlers.Add(name, handler); return(listQuery); }