私はMEFを使い始めており、次のような複数のコンストラクターを持つクラスがあります。
[Export(typeof(ifoo))]
class foo : ifoo {
void foo() { ... }
[ImportingConstructor]
void foo(object par1) { ... }
}
2番目のコンストラクターに値を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
。
クラスの2番目のコンストラクターがfoo
呼び出されないことを除いて、すべてが正常に機能します。どうしたの?
MEFがクラスをインスタンス化するときに使用するコンストラクターを選択するにはどうすればよいですか?