我在ASP WebAPI 2中添加自定义FilterProvider时遇到问题。 问题是当我添加自己的FilterProvider并尝试删除其他FilterProviders时,我无法删除它们。
这段代码:
var providers = GlobalConfiguration.Configuration.Services.GetFilterProviders();
GlobalConfiguration.Configuration.Services.Clear(typeof(IFilterProvider));
GlobalConfiguration.Configuration.Services.Add(typeof(IFilterProvider), new ExcludeFilterProvider(providers));
在我清除所有服务后,我想有清晰的过滤器提供程序列表,但是当我在clear方法之后调用GlobalConfiguration.Configuration.Services.GetFilterProviders()时,如果我不调用Clear方法,我将获得所有这些提供程序的所有列表。 我使用Ninject作为DI容器,它提供了自己的FilterProviders,DefaultFilterProvider和NinjectFilterProvider,我无法删除它们。
你可以帮帮我吗?也许需要更多信息。答案 0 :(得分:1)
我遇到了同样的问题,结果发现我并不需要真正删除这些过滤器提供程序。相反,我只是打电话:
kernel.Rebind<IFilterProvider>().To<CustomFilterProvider>();
在我的Ninject启动电话中。
由于某种原因,Bind没有完成这项工作(它确实添加了我的过滤器提供程序,但是返回的过滤器列表是重复的 - 我只能假设默认的提供程序已经存在)。
希望能帮到你!