【发布时间】:2014-06-23 05:32:05
【问题描述】:
是否可以使用合同名称通过 mef 获取导出为接口的类的类型。
例如,我要获取MailViewModel的类型:
[Export(typeof(IPlugin), "Mail")
public class MailViewModel: IPlugin { }
使用 MEF,我可以获得合同名称“Mail”的 Lazy,但我不知道如何获得 MailViewModel 类型。
我需要知道这种类型,因为我“可以”在导出为 IPlugin 的类上具有特定属性。根据此属性,我将允许或不创建此插件的值(在导航场景中)。
当我使用 [Export] 以原始类型导出我的班级时,我可以写这个来了解特定属性是否装饰了我的班级:
Attribute.GetCustomAttributes(typeof(myviewmodel), typeof(myattribute));
知道导出的类型和合同名称(IPlugin 和“Mail”),我如何知道导出的类是否使用特定属性进行装饰(无需实例化)。
【问题讨论】: