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 在 MVC 4 中不起作用

如果您已经使用 Ninject 注册了 DependencyResolver.Current,那么只剩下一个问题。

Ninject 在构造您的 AppFormAppUnitOfWork 以传递给您的控制器的构造函数。

要找出该异常是什么,您可以在一些位置(例如begin request)中编写几行代码,并尝试从DependencyResolver.Current解析您的对象。

将该代码放入 try catch,然后您将找到问题的主要来源。

祝你好运