Ninject + Web ApI 2.Custom FilterProvider

时间:2015-05-25 11:51:12

标签: asp.net-web-api ninject

我在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,我无法删除它们。

你可以帮帮我吗?也许需要更多信息。

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,结果发现我并不需要真正删除这些过滤器提供程序。相反,我只是打电话:

kernel.Rebind<IFilterProvider>().To<CustomFilterProvider>();

在我的Ninject启动电话中。

由于某种原因,Bind没有完成这项工作(它确实添加了我的过滤器提供程序,但是返回的过滤器列表是重复的 - 我只能假设默认的提供程序已经存在)。

希望能帮到你!