所以我遇到与MVC5, Web API 2 and Ninject
完全相反的问题我有一个新的MVC5 / WebAPI2项目,它同时包含“Controller”和“ApiControllers”。
我正在使用Ninject.Web.WebAPI的最新不稳定版本,没有代码更改NinjectDependencyResolve.cs和Ninject.WebCommom.cs(除了绑定我的依赖项)ApiController的构造函数注入工作。但是,当我调用MVC控制器时,我得到:
没有为此对象定义无参数构造函数。
答案 0 :(得分:4)
问题是你需要一个MVC和WebAPI的依赖性解析器。根据您使用的Ninject库集,您只能获得其中一个连接库。
即。如果您使用Ninject.Web.WebAPI库,则需要手动设置MVC解析器:
System.Web.Mvc.DependencyResolver.SetResolver(new NinjectResolver(kernel));
(我是在NinjectWebCommon.cs CreateKernel()
中完成的)
您的Ninject解析器可以继承WebAPI和MVC的接口:
public class NinjectResolver : NinjectScope,
System.Web.Http.Dependencies.IDependencyResolver,
System.Web.Mvc.IDependencyResolver