【问题标题】:NinjectHttpApplication doesn't work after porting to web api 2移植到 web api 2 后,NinjectHttpApplication 不起作用
【发布时间】:2014-06-23 15:19:57
【问题描述】:

我已将我的 Web Api 应用程序移植到 Web Api 2 并安装了 ninject web api 包。但现在我收到一个错误:

Error activating ModelValidatorProvider using binding from ModelValidatorProvider to NinjectDefaultModelValidatorProvider

A cyclical dependency was detected between the constructors of two services.

【问题讨论】:

  • 你有 Nuget 的 Ninject.Web.WebApi 3.2.0.0 吗?

标签: c# .net ninject asp.net-web-api2


【解决方案1】:

我也有同样的问题。当我将 Ninject.Web.WebApi 添加为 Nuget 包时,我得到了它。

为了解决这个问题,我不得不删除我之前实施的解决方法。

在之前的解决方法中,我已将 NinjectWebCommon 中的依赖解析器设置为实现 IDependencyResolver 的自定义类。

简而言之,如果你在 NinjectWebCommon 的CreateKernel() 中有类似GlobalConfiguration.Configuration.DependencyResolver = new NinjectDependencyResolver(kernel); 的行,请删除它。

【讨论】:

  • 谢谢。似乎解决方法很常见:)
  • 这对我也有用。在安装 nuget 包 Ninject.Web.WebApi 之前,我自己应用了这篇文章 link 之后的解决方法
【解决方案2】:

没能成功。作为一种解决方法,刚刚完全删除了 Ninject.Web.WebApi 包,现在使用手动 Web api 依赖解析器进行 ninject。 老实说,它是如此简单,以至于我真的没有理由使用这个 nuget 包与 ninject 集成。

【讨论】:

  • 嗨,我遇到了同样的问题,但是我没有引用 Ninject.Web.WebApi 包。我引用的唯一两个是 Ninject 和 Ninject.Web.Common。您对此有何解决方案?你能提供你正在使用的手动 web api 依赖解析器吗?
  • 我意识到可能已经太晚了,但这里是:gist.github.com/Deadarius/…
  • 这个要点不会提供所有的基础设施来启用 web api 2 注入。
  • 我也是。删除了 NuGet 包(我不知道它应该如何工作,尤其是因为它没有实现 IDependencyResolver)并在这个 SO 问题中使用了 GitHub gyst 代码://stackoverflow.com/questions/16382982/…
猜你喜欢
  • 1970-01-01
  • 2015-01-17
  • 1970-01-01
  • 1970-01-01
  • 2013-11-11
  • 2017-09-19
  • 1970-01-01
  • 1970-01-01
  • 2018-09-03
相关资源
最近更新 更多