我对Ninject和MVC 5 Web api 2.2有问题



我在MVC5、Web API 2和Ninject中尝试了该解决方案,但该包破坏了我的构建(System.Web)。我还尝试了"Ninject.MVC3"包。当我用"更新包-重新安装Microsoft.AspNet.WebApi.WebHost"修复它时,我得到了错误:

尝试创建错误类型为"AnyController"的控制器时出错。请确保控制器具有无参数的公共构造函数。

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

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

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

我将非常感谢的任何帮助

不确定问题的原因是什么,因为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.MVC5Ninject.Web.WebApi。任何一个都将安装Ninject基本软件包。

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

相关内容

  • 没有找到相关文章

最新更新