我在使用MVC contrib的可移植区域的外部程序集中有MVC3控制器,但是我遇到了让Ninject注入构造函数依赖项的问题。
找到控制器但是我得到了“没有为此对象定义的无参数构造函数”的例外。我可以看到ninject的控制器工厂正在调用堆栈中被调用,但对于外部程序集,它只是不通过我的数据库会话。
为什么会这样?
答案 0 :(得分:1)
可能你应该更新Ninject。 RegisterAllControllersIn
来自一个很久以来过时的版本。
答案 1 :(得分:0)
您需要使用Ninject的RegisterAllControllersIn方法在其他程序集中注册控制器。
这是我在global.asax的应用程序启动方法中的实现:
foreach (var ass in BuildManager.GetReferencedAssemblies().Cast<Assembly>())
{
RegisterAllControllersIn(ass);
}