sto iniziando a utilizzare MEF, e ho una classe con più costruttori, in questo modo:MEF parametri del costruttore con Costruttori più
[Export(typeof(ifoo))]
class foo : ifoo {
void foo() { ... }
[ImportingConstructor]
void foo(object par1) { ... }
}
Sto usando catalog.ComposeExportedValue()
durante la composizione di fornire il valore par1
alla seconda costruttore:
...
catalog.ComposeExportedValue(par1Value);
catalog.ComposeParts(this);
...
per contenere i componenti sto usando:
[ImportMany(typeof(ifoo))]
public List<Lazy<ifoo, ifoometadata>> FooList { get; set; }
E per creare l'istanza foo
sto utilizzando la proprietà value, FooList[0].Value
.
Tutto funziona correttamente, tranne che il secondo costruttore della classe foo
non viene mai chiamato. Cosa c'è che non va?
Come selezionare il costruttore che desidero utilizzare quando MEF istanzia la classe?
Dai un'occhiata alla http://stackoverflow.com/questions/2008133/mef-constructor-injection ... è non * esattamente * la stessa domanda, ma la risposta accettata fa luce sull'importazione di costruttori che potrebbero aiutare. –
sì, infatti sto usando la risposta di Daniel Plaisted, il problema è che non posso trovare alcun esempio di creazione di istanze di mef usando più definizioni di costruttore. – InterWAS