1
我已经创建了三个接口:MEF中具有元数据访问的多个接口?
interface A
{
B obj{ get; }
}
interface B
{
C obj { get; }
}
interface C { }
[Export(typeof(C))]
class class C1 : C
{
//.........
}
[Export[typeof(B)]
[ExportMetadata("Name", "ABC")
class class1 : B
{
[Import(typeof(C))]
public C Cvalues;
public C obj
{
get { return Cvalues; }
}
}
[Export(typeof(B))]
[ExportMetadata("Name", "XYZ")]
class class2 : B
{
[Import(typeof(C))]
public C Cvalues;
public C obj { get { return Cvalues; } }
}
现在,我想在接口接口B的元数据导出一个
[Export(typeof(A))
class AA : A
{
// how i get the B here
[Import(typeof(B)]
public B Bvalues;
public B objB { get { return Bvalues; } }
}
,如果我尝试再创建接口A接口B的酒店在一个导入B它给我输出,但ImportMany怎么样,因为接口B返回ImportMany ...
请给我一些想法如何让我所有的接口B出口在接口A.
不明白你的想法请详细描述一下 –
我试图实现你的逻辑,但不工作。关于逻辑,我可以在Lazy中调用单个组件,但是当扩展目录Lazy中的多个组件不能使用组件时。它不会给出任何错误,但内部过程不会发生。如果你给一些适当的演示,那么请给这里。经过测试的演示更适合guding。谢谢 –
@ user166694如果你想导入多个组件,请在类型为IEnumerable>' –