2

コンストラクターに渡されたパラメーターが異なる 2 つの異なるインスタンスを 1 つの型からエクスポートしたいと思います。

もう少し詳しく言うと:

interface IA {
 string P { get; }
}

[Export(typeof(IA))]
[ExportMetadata("p", "1")]
[ExportMetadata("p", "2")]
class A : IA {

 [ImportingConstructor]
 public A( string p ) {
  this.P = p;
 }

 public string P { get; set; }
}

のコレクションをインポートするときに、コンストラクタ パラメータの異なる値でインスタンス化されたの 2つIAのインスタンスを取得したいと思います。Ap12

これを MEF でアーカイブすることは可能ですか?

4

1 に答える 1

2

あなたのシナリオでは、プロパティのエクスポートは機能しますか?

class A : IA
{
    public A(string p) { P = p; }
    public string P { get; set; }
}

class AExports
{
    [Export(typeof(IA))]
    [ExportMetadata("p", "1")]
    public IA A1
    {
        get { return new A("1"); }
    }

    [Export(typeof(IA))]
    [ExportMetadata("p", "2")]
    public IA A2
    {
        get { return new A("2"); }
    }
}
于 2013-07-23T15:29:39.100 に答える