Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何注入在Windsor注册的MEF[ImportingConstructor]依赖项?_C#_Inversion Of Control_Castle Windsor_Mef - Fatal编程技术网

C# 如何注入在Windsor注册的MEF[ImportingConstructor]依赖项?

C# 如何注入在Windsor注册的MEF[ImportingConstructor]依赖项?,c#,inversion-of-control,castle-windsor,mef,C#,Inversion Of Control,Castle Windsor,Mef,我正在开发一个C#/MVC应用程序,该应用程序目前使用Windsor作为DI框架,并且刚刚开始探索MEF以使该应用程序更具可扩展性。它一直工作得很好,直到我的插件需要满足依赖性为止 如何将Windsor托管依赖项注入到MEF导入的类中,最好使用[ImportingConstructor] 我曾尝试从MefContrib扩展ContainerAdapterBase,但不知道如何让它与[ImportingConstructor]一起工作。此外,国际奥委会也不能使用MEF 谢谢 更新: 我目前的解决方

我正在开发一个C#/MVC应用程序,该应用程序目前使用Windsor作为DI框架,并且刚刚开始探索MEF以使该应用程序更具可扩展性。它一直工作得很好,直到我的插件需要满足依赖性为止

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

我曾尝试从MefContrib扩展ContainerAdapterBase,但不知道如何让它与[ImportingConstructor]一起工作。此外,国际奥委会也不能使用MEF

谢谢

更新: 我目前的解决方案是编写一个由Windsor管理的简单的“DSL”,它提供插件所需的所有功能,然后在MEF向我传递插件实例时手动注入这些功能。可能有点讨厌,但它是有效的,这也意味着我不必从插件中进行任何服务定位,并且还提供了一个很好的边界来界定插件“允许”做什么


如果您对这种方法有任何想法,我们将不胜感激。

您是否考虑过使用Windsor而不是使用MEF来创建插件(我对MEF不是很熟悉,但Windsor是超级可扩展的)。我喜欢使用MEF的想法,因为它非常简单,而且是它的设计初衷,并且支持Windsor不喜欢在运行时丢弃的DLL中拾取类的一些东西。我更愿意在任何事情上使用Windsor,但在它不是合适的工具的地方,我感觉有点像是在磨鞋。我现在正在使用MEF&Unity解决同样的问题。想发布一些关于您如何解决问题的线索吗?不幸的是,大约一年后,我们放弃了MEF方法,我再也无法访问代码了,对不起……DSL方法在需要时运行良好。