创建MetadataAttribute
属性的方法。MEF不导入具有允许使用多个的多个
[MetadataAttribute]
[AttributeUsage(AttributeTargets.Method, AllowMultiple = true)]
public class BusinessLogicMetaDataAttribute : ExportAttribute, IBusinessLogicMetaData
{
//......
}
然后我用GetExports<T>()
来导入方法。
//.....
var imported = _container.GetExports<Action<object, EvantArgs>, IBusinessLogicMetaData>("myplugin");
//.....
这里是我的插件方法:
[BusinessLogicMetaData("myplugin")]
[BusinessLogicMetaData("myplugin1")]
public void Test(object sender, EventArgs e)
{
//....
}
获取出口是不是在我MetadataAttribute
返回因为AlowMultiple=true
插件方法。它工作正常,如果我将我的metadataAttribute设置为AllowMultiple = false并删除插件方法的第二个属性。
为什么我的插件方法不能有两个属性?
感谢您的帮助!
我不能使用枚举。它可以通过属性名称进行更改。那么有两个属性有什么问题? – Dilshod
@Dshshod查看更新,尝试从'Attribute'继承而不是 – Jason
@Dilshod请注意,您将不得不使用ExportAttribute以及pure(无导出)元数据属性。 –