2011-03-04 13 views
14

İthalatı giderirken kullanmak üzere MEF kapsayıcısına/kataloğuna önceden oluşturulmuş bir örneği nasıl ekleyebilirsiniz. Unity'nin kapsayıcısında RegisterInstance yöntemiyle verdiği işlevselliği istiyorum.MEF kapsayıcısına örnek ekleme

+0

MEF bir IoC konteyner değil, bunun için yapılmaması gibi Unity yerini alacağı MEF beklemek olmamalıdır. Bunu okuyabilirsiniz: http://www.google.pl/search?sourceid=chrome&ie=UTF-8&q=mef+as+ioc – NOtherDev

+2

@ A. Unity'nin yerini alacağını beklemiyorum, ancak şimdiye kadar proje başka bir IoC çerçevesi eklemeden ortaya çıktı ve ihtiyacım olan tek şey bu ve MEF ile bu gerekliliğin çözülmesi mümkün olduğunda başka bir çerçevenin eklenmesini haklı çıkarmıyor. – Cornelius

+0

MEF2, tam teşekküllü bir IOC'dir. – stricq

cevap

20

Çok gibi bunun için ComposeExportedValue işlevi kullanabilirsiniz:

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

Ve eğer bir isimle de kayıt yaptırmak istersem? – Cornelius

+1

ComposeExportedValue için diğer bir aşırı yükleme, contractName için bir dize alır. Örneğimi güncelledi. – alexn

+1

Herkes bunu System.Composition'da nasıl yapılacağını biliyor mu? (PCL sürümü). – tofutim