Use of TypeCatalog
本文关键字:TypeCatalog of Use | 更新日期: 2023-09-27 18:24:00
我原以为这会很容易,但在扫描了许多页面后,谷歌并没有帮助我。
我有以下测试方法。
var tCatalog = new TypeCatalog(typeof (ISystemIndex));
var aCatalog = new AssemblyCatalog(typeof (ISystemIndex).Assembly);
tCatalog.Parts
为空,而aCatalog.Parts.Count
为3(其中一个来自用[Export(typeof(ISystemIndex))]
装饰的类,另外两个来自从定义了导出的基继承的类)
我做错了什么?我需要以某种方式初始化TypeCatalog
吗?
我试图解决的问题是用程序集中的可导出类的子集创建一个目录。
提前谢谢。
您正试图为接口定义创建一个TypeCatalog
,但该定义未导出,因为ISystemIndex
接口没有装饰[Export]
属性。
如果你有这样的课程
[Export(typeof(ISystemIndex))]
public class MySystemIndex : ISystemIndex
{
}
然后创建一个类型目录
var tCatalog = new TypeCatalog(typeof(MySystemIndex));
那么你会在tCatalog.Parts
中看到它。
编辑
如果您想让目录按特定标准进行筛选(例如,在您的情况下,仅限于导出),请查看MEF关于筛选目录的文档