ASP.NET Web API和Ninject无法正常工作

时间:2014-01-26 18:32:12

标签: asp.net-mvc ninject ninject.web.mvc

我启动了一个新的ASP.NET MVC项目,我正在使用Ninject作为我的IOC控制器。

就常规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放在浏览器中以获取get操作)时,我收到以下错误:

尝试创建“DetailsController”类型的控制器时发生错误。确保控制器具有无参数的公共构造函数。

它期望得到一个空的构造函数,但是如果我给它一个空的构造函数来使用 - 它将不会初始化我需要的对象。

我做错了什么? Ninject是否支持web api?

由于

1 个答案:

答案 0 :(得分:2)

为WebAPI安装适当的Ninject Nuget包:

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