MEF Konstruktor-Parameter mit Mehreren Konstruktoren

Ich bin seit MEF, und ich habe eine Klasse mit mehreren Konstruktoren, wie diese:

[Export(typeof(ifoo))]
class foo : ifoo {
    void foo() { ... }
    [ImportingConstructor]
    void foo(object par1) { ... }
}

Ich bin mit catalog.ComposeExportedValue() beim Komponieren zur Versorgung der par1
Wert auf den zweiten Konstruktor:

...
catalog.ComposeExportedValue(par1Value);
catalog.ComposeParts(this);
...

Halten die Komponenten die ich verwende:

[ImportMany(typeof(ifoo))]
public List<Lazy<ifoo, ifoometadata>> FooList { get; set; }

Zu erstellen und das foo Beispiel bin ich mit der value-Eigenschaft, FooList[0].Value.

Alles funktioniert gut, außer, dass der zweite Konstruktor der foo Klasse nie aufgerufen wird. Was ist falsch?

Wie wähle ich den Konstruktor, den ich nutzen möchte, wenn MEF instanziiert die Klasse?

  • Haben Sie einen Blick auf stackoverflow.com/questions/2008133/mef-constructor-injection ... es ist nicht genau die gleiche Frage, aber die akzeptierte Antwort wirft ein Licht auf den Import von Konstruktoren, die helfen können.
  • ja, in der Tat, ich bin mit der Antwort von Daniel Plaisted, das problem ist ich kann nicht finden, Beispiele von mef-Instanz anlegen über mehrere Konstruktor-Definitionen.
InformationsquelleAutor InterWAS | 2010-05-31
Schreibe einen Kommentar