MEF框架使用类ExportMetadata
当Import端定义了相关的元数据接口要求
[ImportMany]
public Lazy<IPluginDemo, ILoggerData>[] plugins;
public interface ILoggerData
{
string Name { get; }
}
则在Export端,需要使用ExportMetadata来定义相应的值,如
[ExportMetadata("Name", "插件1")] //Name对应接口中的Name属性
[Export(typeof(IPluginDemo))]
public class PluginOne : IPluginDemo
{
public string Text => "插件1";
public Guid GID { get; set; }
public void Do()
{
MessageBox.Show(Text);
}
}
ILoggerData不需要有专门的实例对像或实现类型