2013-07-23 29 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

谢谢,好主意。看来它会适用于我的情况。 –