3

MEFフレームワークは、デフォルトのCTORを持つオブジェクトを作成しているようです。カスタマイズされたCTOR、またはパラメーターを使用したコンストラクターはどうですか?例えば:

[Export (typeof(IInterface1))]
public class MyClass : IInterface1
{
    public MyClass(int id) {....}
    ....
}

そうでない場合、私が考えることができる1つの方法は、オブジェクトをパラメーターとしてCTORに渡すことです。例えば:

public Interface IParameterID {public int Id {get; プライベートセット; }...}

その場合、CTORは次のようになります。

public MyClass([Import(typeof(IParameter))] IParameterID id)
{ ... }

CTORのパラメーターに属性を追加できるかどうかわかりませんか?そして次の質問は、MEFがIParameterのインスタンスを自動的に作成し、それをCTORのパラメーターに注入するかどうかです。

4

1 に答える 1

4

はい、これは可能です。使用したいコンストラクターに[ImportingConstructorAttribute]を置くだけです。パラメータは自動的にインポートとして扱われますが、それらのコントラクト名を変更する必要がある場合は、それらにインポート属性を設定することもできます。

于 2009-10-24T04:55:27.260 に答える