假設的組裝我定義AssemblyA出口:確定一個組合的一部分
[Export(typeof(Foo))]
public class Foo
{
...
}
有沒有一種方法來確定的Foo從AssemblyA在CompositionContainer中出口的是什麼嗎?
我想要做的是爲任何給定的程序集提供MEF導出,它還必須包含一個特定接口的MEF導出。我希望能夠標記任何不滿足此規則的程序集。
假設的組裝我定義AssemblyA出口:確定一個組合的一部分
[Export(typeof(Foo))]
public class Foo
{
...
}
有沒有一種方法來確定的Foo從AssemblyA在CompositionContainer中出口的是什麼嗎?
我想要做的是爲任何給定的程序集提供MEF導出,它還必須包含一個特定接口的MEF導出。我希望能夠標記任何不滿足此規則的程序集。
從CompositionContainer中無法做到這一點。我建議爲每個程序集創建一個AssemblyCatalog,並檢查其任何部件是否具有與您想要的接口匹配的ExportDefinition。
您可以使用靜態ReflectionModelServices.GetPartType方法識別ComposablePartDefinition的類型和組合。以下示例創建包含容器目錄中包含類型的不同裝配的列表:
var assemblies = container.Catalog.Parts
.Select(part => ReflectionModelServices.GetPartType(part).Value.Assembly)
.Distinct()
.ToList();