Ninject不在MVC 4中工作

时间:2013-09-20 09:54:42

标签: c# asp.net-mvc asp.net-mvc-4 ninject

我有一个简单的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)方法中设置了一个断点并且它被击中了。

我错过了什么,做错了什么?

1 个答案:

答案 0 :(得分:0)

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

Ninject正在构建你的AppFormAppUnitOfWork以传递给你的异常 控制器的构造函数。

要找出该异常的内容,您可以在某些地方编写几行代码,例如begin request,并尝试从DependencyResolver.Current中解析您的对象。

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

祝你好运