创建MetadataAttribute
允许使用多个。
[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)
{
//....
}
由于AlowMultiple=true
在我的MetadataAttribute
. 如果我将 metadataAttribute 设置为 AllowMultiple = false 并删除插件方法的第二个属性,它工作正常。
为什么我的插件方法不能有两个属性?
谢谢您的帮助!