2012-10-06 85 views
6

我目前在我的asp.net webapi項目中使用ninject.mvc3,並且它工作正常。我現在試圖綁定篩選器屬性,但在使用NinjectWebCommon靜態類方法時,接口中缺少BindFilterBindHttpFilter。如果我添加了Ninject.Web.WebApi程序包,但其中的項目不運行(問題here,解決方案說Ninject.Web.WebApi已棄用),因此我將其刪除。使用Ninject綁定WebApi篩選器屬性

我也跟着這github wiki確切,仍然沒有找到this.BindFilter。我有最新的nuget軟件包; Ninject(3.0.1.10),Ninject.Web.Common(3.0.0.7),Ninject.MVC3(3.0.0.6)

BindFilter或BindHttpFilter在哪裏?有什麼改變嗎?如何在asp.net web api中綁定過濾器屬性?有這麼多的圖書館和項目,文檔沒有告訴你什麼是當前工作,什麼是廢棄....

回答

4

你使用的包是正確的,他們不包括BindHttpFilter呢。 BindHttpFilter擴展方法來自https://github.com/remogloor/Ninject.Web.WebApi,它目前不適用於WebApi發行版,因爲它是針對測試版WebApi版本編寫的。爲了注入WebApi過濾器,您需要BindHttpFilter,您無法將WebApi過濾器傳遞到BindFilter方法中。

這是https://github.com/ninject/Ninject.Web.WebApi/pull/1似乎是我能找到的關於更新狀態的最新信息。

你也可以嘗試其他NuGet包http://nuget.org/packages/Ninject.Web.WebApi-rc但我有一些錯誤,不記得現在到底是什麼錯誤。無論如何,在閱讀關於上述請求的討論後,我放棄了這個包。

在我的情況下,我想實現一個日誌過濾器,所以我只是要創建一個靜態方法,我可以從過濾器調用,直到注入支持將可用。

4

我有同樣的問題。 1)我安裝最新的(但不穩定)Ninject從PM控制檯Web.Api使用命令

PM> Install-Package Ninject.Web.WebApi -Pre 

2),那麼我這 「使用」 NinjectWebCommon.cs

的部分
using Ninject.Web.WebApi.FilterBindingSyntax; 

後添加這些步驟我的IKernel有方法BindHttpFilter。而且一切正常

+0

這對我有用,但我相信你的意思是NinjectWebCommon.cs – friggle

+0

@friggle是的,當然! –