【发布时间】:2012-11-06 20:39:00
【问题描述】:
在我的 MVC4 应用程序中,我使用 Ninject.Extensions.Conventions 使用默认机制将所有 itnerfaces 与其实现自动绑定:
kernel.Bind(x => x
.FromAssembliesMatching("*")
.SelectAllClasses()
.BindDefaultInterface());
这适用于常规控制器,但不适用于 WebApi 控制器。我需要更改/添加什么?
【问题讨论】:
-
它应该也适用于 web api 控制器。您是否为 webapi 设置了依赖解析器,例如设置
GlobalConfiguration.Configuration.DependencyResolver?你得到什么错误?您使用的是哪个 Ninject 版本? -
嗨 Nemesv。我有一个安装了最新版本的 nuget 包 Ninject.Mvc3 的 mvc4 项目。到目前为止,我所做的唯一更改是将上面的代码粘贴到 NinjectWebCommon 文件中的 RegisterServices 方法中。这使得 DI 适用于常规控制器,但不适用于 Api 控制器。我得到的错误是:类型'MyNamespace.TestController'没有默认构造函数
标签: asp.net-mvc-4 asp.net-web-api ninject