我想从一个类型2导出不同的实例,这些实例在传递给它们的构造函数的参数上有所不同。
更具体一点:
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中实现这一目标?
答案 0 :(得分: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"); }
}
}