Ninject 在 MVC 4 中不起作用
本文关键字:不起作用 MVC Ninject | 更新日期: 2023-09-27 18:32:03
>我有一个简单的MVC 4应用程序:
我从nuget安装了Ninject MVC 3,并将服务从App_Start folder
注册到NinjectWebCommon.cs
中:
/// <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)
它被击中了。
我错过了什么,做错了什么?
如果您已经使用 Ninject 注册了 DependencyResolver.Current,那么只剩下一个问题。
Ninject 在构造您的 AppFormAppUnitOfWork 以传递给您的控制器的构造函数。
要找出该异常是什么,您可以在一些位置(例如begin request)中编写几行代码,并尝试从DependencyResolver.Current解析您的对象。
将该代码放入 try catch,然后您将找到问题的主要来源。
祝你好运