Ich fange an, MEF zu verwenden, und ich habe eine Klasse mit mehreren Konstruktoren, wie folgt:
%Vor% Ich verwende catalog.ComposeExportedValue()
beim Erstellen, um par1
zu liefern.
Wert für zweiten Konstruktor:
Um die Komponenten zu halten, die ich verwende:
%Vor% Und um die foo
Instanz zu erstellen, verwende ich die Werteigenschaft FooList[0].Value
.
Alles funktioniert gut, außer dass der zweite Konstruktor der Klasse foo
nie aufgerufen wird. Was ist los mit dir?
Wie wähle ich den Konstruktor, den ich verwenden möchte, wenn MEF die Klasse instanziiert?
MEF sollte den Konstruktor verwenden, dem Sie ImportingConstructorAttribute
zuweisen. Ich bin mir nicht sicher, was für Sie passiert, ich konnte das Problem nicht reproduzieren. Hier ist ein Test, der zeigt, dass ein Import-Konstruktor für eine Klasse verwendet wird, die auch einen Standardkonstruktor hat:
Übergeben Sie eine Instanz der foo-Klasse in die ComposeExportedValue-Methode? In diesem Fall wurde das Objekt bereits konstruiert, und der Konstruktor kann nicht erneut aufgerufen werden, sodass MEF die Konstruktorimporte ignoriert.
Tags und Links .net c# mef multiple-constructors