2013-07-23 46 views
2

我想從一個類型2中導出其傳遞給構造函數的參數不同的不同實例。導入一個類的多個實例不同於MEF中的參數值

更具體:

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; } 
} 

我想,進口的IA的集合時,得到的A兩個實例是被實例化構造函數的參數p的不同值 - 一個與1等與2(我希望這些參數取自導出的元數據)。

在MEF中可以實現嗎?

回答

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"); } 
    } 
} 
+0

謝謝,好主意。看來它會適用於我的情況。 –