我启动了一个新的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?
由于
答案 0 :(得分:2)
为WebAPI安装适当的Ninject Nuget包:
PM> Install-Package Ninject.Web.WebApi -Version 3.0.0.2