2010-06-03 10 views
2

J'étudie MEF et je ne suis pas capable de résoudre un problème.Mef, en passant des paramètres à un module

J'ai une application principale, appelée MainMEF, et un module simple, appelé SimpleModule. Celui-ci consiste en un seul UserControl qui est chargé dynamiquement.

Lorsque MainMEF démarre, je serais en mesure de transmettre au module une référence à l'application principale contenue dans MainMEF.

Comment pourrais-je résoudre ce problème?

Répondre

6

Beaucoup de questions à ce sujet déjà. Vous pouvez passer après l'initialisation en utilisant une propriété: How do I populate a MEF plugin with data that is not hard coded into the assembly?

Ou utiliser les paramètres constructeur MEF: MEF Constructor Parameters with Multiple Constructors

L'exportation ressemble à ceci:

[Export(typeof(ITest))] 
class Test : ITest 
{ 
    void Test() 
    { } 

    [ImportingConstructor] //<- This is the key bit here 
    void Test(object parameter) 
    { } 
} 

Ensuite, lors de la composition de votre catalogue le faire :

catalog.ComposeExportedValue(/* parameter here */); 
catalog.ComposeParts(this); 
+0

Nous vous remercions de votre réponse. Très utile. Pourriez-vous m'expliquer ces lignes avec plus de code? Prendre en compte le catalogue. ### catalog.ComposeExportedValue (/ * paramètre ici * /); catalog.ComposeParts (this); ### De quel type de type appartient-il? –