我开始使用MEF,我有一个包含多个构造函数的类,如下所示:
[Export(typeof(ifoo))]
class foo : ifoo {
void foo() { ... }
[ImportingConstructor]
void foo(object par1) { ... }
}
Run Code Online (Sandbox Code Playgroud)
我catalog.ComposeExportedValue()在编写时使用它来par1
为第二个构造函数提供值:
...
catalog.ComposeExportedValue(par1Value);
catalog.ComposeParts(this);
...
Run Code Online (Sandbox Code Playgroud)
要保存我正在使用的组件:
[ImportMany(typeof(ifoo))]
public List<Lazy<ifoo, ifoometadata>> FooList { get; set; }
Run Code Online (Sandbox Code Playgroud)
为了创建foo我正在使用value属性的实例,FooList[0].Value.
Everthing工作正常,但从foo不调用类的第二个构造函数.怎么了?
当MEF实例化类时,如何选择我想要使用的构造函数?