2

我在MVC5、Web API 2 和 Ninject中尝试了该解决方案,但该包破坏了我的构建(System.Web)。我也试过“Ninject.MVC3”包。当我使用“Update-Package -reinstall Microsoft.AspNet.WebApi.WebHost”修复它时,我收到错误:

尝试创建类型错误的控制器时发生错误:“AnyController”。确保控制器有一个无参数的公共构造函数。

我已经多次安装,重新安装,卸载 - 安装了所有软件包。

我的 NinjectWebCommon.cs 是香草,除了以下内容:

private static void RegisterServices(IKernel kernel)
  {
    kernel.Bind<IMonitoringConfigurationService>()
    .To<MonitoringConfigurationService>();
  } 

我将非常感谢任何帮助

4

1 回答 1

0

不确定问题的原因是什么,因为 Ninject 的最新版本实际上是即插即用的。确保您已安装以下 Nuget 包。如果您有其他版本或任何奇怪的东西,请卸载它们:

Ninject
Ninject.MVC5
Ninject.Web.WebApi
Ninject.Web.Common (Added by Ninject.Web.WebApi)
Ninject.Web.Common.WebHost (Added by Ninject.MVC5)

其他任何东西都是不必要的,应该删除。最后两个包是作为依赖安装的,所以你真正应该明确安装的是Ninject.MVC5and Ninject.Web.WebApi. 要么安装Ninject基础包。

一旦你得到了正确的包,那么它基本上可以归结为你在NinjectWebCommon.cs. 您需要修改的唯一方法是RegisterServices,您需要添加项目所需的任何和所有绑定。如果你得到一个错误,说你需要一个无参数的构造函数,那只是意味着你没有添加构造函数需要的绑定。

于 2015-02-16T20:08:24.857 回答