estoy empezando a usar MEF, y tengo una clase con varios constructores, así:parámetros del constructor constructores MEF con múltiples
[Export(typeof(ifoo))]
class foo : ifoo {
void foo() { ... }
[ImportingConstructor]
void foo(object par1) { ... }
}
estoy usando catalog.ComposeExportedValue()
la hora de componer para suministrar el valor par1
al segundo constructor:
...
catalog.ComposeExportedValue(par1Value);
catalog.ComposeParts(this);
...
Para mantener los componentes que estoy usando:
[ImportMany(typeof(ifoo))]
public List<Lazy<ifoo, ifoometadata>> FooList { get; set; }
Y para crear la instancia foo
estoy usando la propiedad value, FooList[0].Value
.
Everthing funciona bien, excepto que nunca se llama al segundo constructor de la clase foo
. ¿Qué pasa?
¿Cómo selecciono el constructor que quiero usar cuando MEF crea una instancia de la clase?
Tenga una mirada en http://stackoverflow.com/questions/2008133/mef-constructor-injection ... es no * exactamente * la misma pregunta, pero la respuesta aceptada arroja algo de luz sobre la importación de constructores que pueden ayudar. –
sí, de hecho estoy usando la respuesta de Daniel Plaisted, el problema es que no puedo encontrar ningún ejemplo de creación de instancia de mef usando múltiples definiciones de constructor. – InterWAS