将实例添加到MEF容器

问题描述:

如何在解析Imports时将已创建的实例添加到MEF容器/目录中以供使用。我希望Unity在其容器上使用RegisterInstance方法提供的功能。将实例添加到MEF容器

+0

MEF并不是IoC容器,你不应该从MEF预计它将取代统一,因为它没有为它做。你可以阅读它:http://www.google.pl/search?sourceid=chrome&ie=UTF-8&q=mef+as+ioc – NOtherDev 2011-03-04 08:33:18

+2

@A。我不认为它会取代Unity,但是到目前为止,这个项目并没有包含另一个IoC框架,这是我唯一需要的,如果可以用MEF来解决这个需求,那么不需要添加另一个框架。 – Cornelius 2011-03-04 08:39:01

+0

MEF2是一个完整的国际奥委会。 – stricq 2015-02-22 19:28:32

可以使用ComposeExportedValue功能对于这一点,就像这样:

var container = new CompositionContainer(); 
container.ComposeExportedValue<Application>("Application", Application.Current); 
+1

如果我想注册一个名字呢? – Cornelius 2011-03-04 08:37:00

+1

ComposeExportedValue的其他重载对于contractName需要一个字符串。更新我的例子。 – alexn 2011-03-04 08:38:58

+1

任何人都知道如何在System.Composition中执行此操作? (PCL版本)。 – tofutim 2016-10-10 22:12:56