我有一个简单的MVC 4应用程序:
我从nuget安装了Ninject MVC 3,我将服务从NinjectWebCommon.cs
注册到App_Start folder
:
/// <summary>
/// Load your modules or register your services here!
/// </summary>
/// <param name="kernel">The kernel.</param>
private static void RegisterServices(IKernel kernel)
{
kernel.Bind<IAppFormAppUnitOfWork>()
.To<AppFormAppUnitOfWork>()
.InRequestScope();
}
我有HomeController
public class HomeController : Controller
{
private readonly IAppFormAppUnitOfWork _unitOfWork;
public HomeController(
IAppFormAppUnitOfWork unitOfWork)
{
_unitOfWork = unitOfWork;
}
}
我收到错误
没有为此对象定义无参数构造函数。
我还在RegisterServices(IKernel kernel)
方法中设置了一个断点并且它被击中了。
我错过了什么,做错了什么?
答案 0 :(得分:0)
如果您已使用Ninject注册了DependencyResolver.Current,那么只剩下一个问题。
Ninject正在构建你的AppFormAppUnitOfWork以传递给你的异常 控制器的构造函数。
要找出该异常的内容,您可以在某些地方编写几行代码,例如begin request,并尝试从DependencyResolver.Current中解析您的对象。
将该代码放入try catch中,然后您将找到问题的主要来源。
祝你好运