創建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(無導出)元數據屬性。 –