【问题标题】:MVC5, WebAPI2 and Ninject Parameterless constructor errorMVC5、WebAPI2 和 Ninject 无参数构造函数错误
【发布时间】:2014-03-09 20:06:27
【问题描述】:

所以我遇到了与MVC5, Web API 2 and Ninject完全相反的问题

我有一个新的 MVC5/WebAPI2 项目,它同时具有“Controller”和“ApiControllers”。

我正在使用 Ninject.Web.WebAPI 的最新不稳定版本,没有对 NinjectDependencyResolve.cs 和 Ninject.WebCommom.cs 进行代码更改(除了绑定我的依赖项),ApiController 的构造函数注入工作。但是,当我调用 MVC 控制器时,我得到:

没有为此对象定义无参数构造函数。

【问题讨论】:

标签: dependency-injection ninject asp.net-mvc-5 asp.net-web-api2


【解决方案1】:

问题是您需要 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

【讨论】:

    猜你喜欢
    • 2014-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多