在我的MVC4应用程序中,我正在使用Ninject.Extensions.Conventions使用默认机制自动绑定所有itnerfaces及其实现:
kernel.Bind(x => x
.FromAssembliesMatching("*")
.SelectAllClasses()
.BindDefaultInterface());
这适用于常规控制器,但不适用于WebApi控制器。我需要更改/添加什么?
答案 0 :(得分:2)
好的,我按照这篇文章解决了这个问题: http://www.peterprovost.org/blog/2012/06/19/adding-ninject-to-web-api/
简而言之:我创建了自己的依赖项解析器(根据文章),并按照nemesv的建议将其分配给GlobalConfiguration.Configuration.DependencyResolver
答案 1 :(得分:0)
已经有很多关于如何通过网络将NInject与Web API集成的示例,使用:
DependencyResolver
在ASP.NET网站上展示了任何DI / IoC与Web API集成的标准方法: http://www.asp.net/web-api/overview/extensibility/using-the-web-api-dependency-resolver
的IDependencyResolver。
WebApiContrib项目显示了如何使用IDependencyResolver执行此操作 https://github.com/WebApiContrib/WebApiContrib.IoC.Ninject
请发布有关这些解析器实施的更多信息,以便更具体地回答。