首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在ASP.NET Web API中使用Ninject?

如何在ASP.NET Web API中使用Ninject?
EN

Stack Overflow用户
提问于 2012-12-24 11:28:21
回答 4查看 22.5K关注 0票数 19

在MVC中,我只需创建实现DefaultControllerFactory接口的类NinjectControllerFactory,然后在其中进行一些绑定。最后,我在Global中运行了它:

代码语言:javascript
复制
ControllerBuilder.Current.SetControllerFactory(new NinjectControllerFactory());

但是如何在ASP.NET Web API中使用Ninject呢?网上有一些信息,但已经过时了,而且是针对预发布版本的。

有没有解决这个问题的简单方法?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-12-24 16:18:46

许多文章都很旧的原因是因为自2012年6月(RC发布于5月31日)以来,方法没有改变。您需要添加Ninject MVC3 Nuget包,然后实现'IDepenencyResolver‘,然后注册您的实现。

最好的两种步行方式是:

  1. http://www.strathweb.com/2012/05/using-ninject-with-the-latest-asp-net-web-api-source/
  2. http://www.peterprovost.org/blog/2012/06/19/adding-ninject-to-web-api/
票数 19
EN

Stack Overflow用户

发布于 2014-09-22 23:08:39

当前版本的Ninject.Web.WebApi,至少从3.2.1.0开始,不再需要手动添加任何额外的东西。只需像往常一样添加包并在NinjectWebCommon.cs中注册所有内容即可。

票数 6
EN

Stack Overflow用户

发布于 2016-04-22 14:32:25

对于Web Api 2,您需要这些nuget包-

代码语言:javascript
复制
Ninject
Ninject.Web.Common
Ninject.Web.WebApi 
Ninject.Web.Common.WebHost
WebActivatorEx 

并且您需要编辑NinjectWebCommon.CreateKernel(..)以包含

代码语言:javascript
复制
RegisterServices(kernel);
GlobalConfiguration.Configuration.DependencyResolver = new NinjectDependencyResolver(kernel);
return kernel;

我已经在这里写了一篇详细的博客文章- http://NoDogmaBlog.bryanhogan.net/2016/04/web-api-2-and-ninject-how-to-make-them-work-together/,包括一个完整的解决方案可供下载。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14016727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档