2014-02-18 70 views
3

我正在研究目前使用Windsor作为DI框架的C#/ MVC应用程序,并且刚刚开始探索MEF以使应用程序更具可扩展性。它的工作很好,直到我的插件需要依赖满足的地步。如何注入Windsor注册的MEF [ImportingConstructor]依赖关系?

如何将Windsor管理的依赖注入到由MEF导入的类中,最好使用[ImportingConstructor]?

我试过从MefContrib扩展ContainerAdapterBase,但无法弄清楚如何让它与[ImportingConstructor]一起工作。另外,使用MEF for IoC不是一种选择。

谢谢!

+1

你有没有考虑用Windsor创建插件而不是使用MEF(我对MEF不是很熟悉,但windsor是超级可扩展的)。 – Marwijn

+0

我喜欢使用MEF的想法,因为它非常简单,并且是它的设计目的,并且支持一些Windsor不喜欢在运行时丢弃的DLL中拾取类。我宁愿使用温莎的一切,但感觉有点像鞋 - 它在它不是正确的工具。 – GoatInTheMachine

回答

0

更新: 我目前的解决方案是编写一个由Windsor管理的简单'DSL',它提供插件所需的全部功能,然后在MEF通过插件实例时手动插入。可能有点令人讨厌,但它的工作原理,这也意味着我不必从插件做任何服务位置,并提供了一个很好的边界,围绕什么插件是'允许'做的。

关于这种方法的任何想法将不胜感激。

+0

我现在正在使用MEF&Unity解决同样的问题。谨慎发布一些关于你如何解决问题的线索? –

+0

不幸的是,我们在一年后放弃了MEF方法,并且我再也无法访问代码,对不起...... DSL方法虽然在需要时仍然运行良好。 – GoatInTheMachine