1

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

Bind<SomePluginController>.ToSelf();

所以动态添加的路由可以被拾取。

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

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

4

1 回答 1

1

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

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

于 2011-09-28T10:36:49.713 回答