2011-03-04 132 views
14

如何在解析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

回答

20

可以使用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