【发布时间】:2016-05-02 06:56:51
【问题描述】:
加载控制器时出现此错误。
An error occurred when trying to create a controller of type 'MembersController'. Make sure that the controller has a parameterless public constructor.
我已经添加了
System.Web.Http.GlobalConfiguration.Configuration.DependencyResolver = new Ninject.WebApi.DependencyResolver.NinjectDependencyResolver(kernel);
注册绑定后到NinjectWebCommon 类。
并且我已经注册了相关服务。请参阅编辑
private static void RegisterServices(IKernel kernel)
{
kernel.Bind<IMembersService, MembersService>();
kernel.Bind<MemberContext, MemberContext>();
}
这是我添加的 ninject 包 -
<package id="Ninject" version="3.2.0.0" targetFramework="net451" />
<package id="Ninject.MVC5" version="3.2.1.0" targetFramework="net451" />
<package id="Ninject.Web.Common" version="3.2.0.0" targetFramework="net451" />
<package id="Ninject.Web.Common.WebHost" version="3.2.0.0" targetFramework="net451" />
<package id="Ninject.Web.WebApi" version="3.2.4.0" targetFramework="net451" />
<package id="Ninject.WebApi.DependencyResolver" version="0.1.4758.24814" targetFramework="net451" />
我错过了什么?
编辑
感谢我与 Jerrod Horton(下图)的交谈,我意识到我的绑定不正确。
应该是
private static void RegisterServices(IKernel kernel)
{
kernel.Bind<IMembersService>().To<MembersService>();
kernel.Bind<MemberContext>().To<MemberContext>();
}
【问题讨论】:
标签: c# asp.net-web-api dependency-injection ninject asp.net-web-api2