DotNet · 2022年3月22日

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不需要有专门的实例对像或实现类型


最新电影,电视剧,尽在午夜剧场

电影电视剧午夜不寂寞