Asp Mvc 3与NinjectHttpApplication和MEF

时间:2011-09-26 14:00:51

标签: asp.net-mvc ninject mef ninject.web.mvc

我使用Ninject作为我的MVC控制器工厂,但我也通过MEF加载某些路由和控制器,这些控制器需要能够使用Ninject注册自己:

Bind<SomePluginController>.ToSelf();

因此可以选择动态添加的路线。

到目前为止,我能想到的唯一方法是将内部内核暴露在Web应用程序之外,但这看起来有点令人讨厌,NinjectHttpApplication.Kernel似乎已经过时了。

有没有其他人设法做到这一点?

1 个答案:

答案 0 :(得分:1)

你遇到的问题是MEF被设计为组成一组未知部分,而Ninject正在处理显式组件注册。您不能轻易地从MEF获取类型信息,因为它全部在运行时处理,而不是在编译时处理。

我认为您可能需要做的是构建一个支持Ninject和MEF的复合控制器工厂。