将Ninject与外部程序集中的MVC3控制器一起使用

时间:2011-12-20 11:11:52

标签: asp.net-mvc dependency-injection ninject controllers external-assemblies

我在使用MVC contrib的可移植区域的外部程序集中有MVC3控制器,但是我遇到了让Ninject注入构造函数依赖项的问题。

找到控制器但是我得到了“没有为此对象定义的无参数构造函数”的例外。我可以看到ninject的控制器工厂正在调用堆栈中被调用,但对于外部程序集,它只是不通过我的数据库会话。

为什么会这样?

2 个答案:

答案 0 :(得分:1)

可能你应该更新Ninject。 RegisterAllControllersIn来自一个很久以来过时的版本。

答案 1 :(得分:0)

您需要使用Ninject的RegisterAllControllersIn方法在其他程序集中注册控制器。

这是我在global.asax的应用程序启动方法中的实现:

        foreach (var ass in BuildManager.GetReferencedAssemblies().Cast<Assembly>())
        {
            RegisterAllControllersIn(ass);
        }
相关问题