2014-01-26 38 views
1

我開始了一個新的ASP.NET MVC項目,並且使用Ninject作爲我的IOC控制器。ASP.NET Web API和Ninject不工作

至於常規的MVC控制器去 - 一切工作正常,並按預期方式綁定到控制器構造函數。

我已經爲我的項目添加了一個WEB API,並做了幾乎相同的事情。這裏是API構造:

public class DetailsController : ApiController 
{ 
    private IClientInfoRetriever _clientInfoRetriever; 

    public DetailsController(IClientInfoRetriever clientInfoRetriever) 
    { 
     _clientInfoRetriever = clientInfoRetriever; 
    } 

    . 
    . 
    . 
    // The rest of my methods 
} 

這裏是Ninject綁定:

Bind<IClientInfoRetriever>().To<ClientInfoRetriever>(); 

,但是當我嘗試訪問我的API(只把URL在瀏覽器中的取得動作)我得到的以下錯誤:

嘗試創建類型爲'DetailsController'的控制器時發生錯誤。確保控制器有一個無參數的公共構造函數。

它期望得到一個空的構造函數,但如果我給它一個空構造函數使用 - 它不會初始化我需要的對象。

我在做什麼錯? Ninject是否支持web api?

感謝

+2

讀http://www.strathweb.com/2012/05/using-ninject-with-the-latest-asp -net-web-api-source/ – Mate

+0

這篇文章是在web apis仍處於測試版和預發行版時編寫的 - 它甚至還是相關的嗎? – developer82

+0

也許ninject有一個web api集成包,至少autofac有一個 – MikeSW

回答

2

安裝合適的Ninject的NuGet包的WebAPI:

PM> Install-Package Ninject.Web.WebApi -Version 3.0.0.2 
+0

嗨,我在嘗試安裝時出現以下錯誤:已經引用了較新版本的'Microsoft.AspNet.WebApi'。 – developer82

+0

好的。最終從預發佈版下載 - 這是訣竅。謝謝。 – developer82