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