2015-05-25 25 views
0

我在ASP WebAPI 2中添加自定義FilterProvider時遇到問題。 問題是,當我添加自己的FilterProvider並嘗試刪除其他FilterProvider時,我無法刪除它們。Ninject + Web ApI 2.Custom FilterProvider

下面的代碼:

var providers = GlobalConfiguration.Configuration.Services.GetFilterProviders(); 
     GlobalConfiguration.Configuration.Services.Clear(typeof(IFilterProvider)); 
      GlobalConfiguration.Configuration.Services.Add(typeof(IFilterProvider), new ExcludeFilterProvider(providers)); 

後,我清楚我想有過濾器供應商的名單清楚所有服務,但是當我明確的方法調用後GlobalConfiguration.Configuration.Services.GetFilterProviders()我得到的所有列表與所有這些提供者,如果我不叫清除方法。 我使用Ninject作爲DI容器,它提供了他自己的FilterProviders,DefaultFilterProvider和NinjectFilterProvider,我無法刪除它們。

你能幫助我嗎?也許需要更多的信息。

回答

1

我有這個同樣的問題,原來我並不需要真正消除這些過濾器供應商。相反,我簡稱:

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

在我Ninject啓動了警鐘。

出於某種原因,綁定並沒有做的工作(它確實添加了我的過濾器提供商,但返回的過濾器列表被複制 - 我只能假設,默認提供了被留在原處)。

希望能幫到你!