gpt4 book ai didi

c# - 类型目录的使用

转载 作者:行者123 更新时间:2023-11-30 21:09:08 25 4
gpt4 key购买 nike

我认为这很容易,但在扫描了很多页面后,Google 并没有帮助我。

我在测试方法中有以下内容。

var tCatalog = new TypeCatalog(typeof (ISystemIndex));
var aCatalog = new AssemblyCatalog(typeof (ISystemIndex).Assembly);

tCatalog.Parts 是空的,而 aCatalog.Parts.Count 是 3(其中一个来自用 [Export(typeof( ISystemIndex))],另外两个来自继承自带有 Export 定义的基类的类)

我做错了什么?我是否需要以某种方式初始化 TypeCatalog

我要解决的问题是在我的程序集中创建一个包含可导出类子集的目录。

提前致谢。

最佳答案

您正在尝试为接口(interface)定义创建一个 TypeCatalog,它不会被导出,因为没有 [Export] 属性装饰 ISystemIndex 接口(interface)。

如果你有一个类

[Export(typeof(ISystemIndex))]
public class MySystemIndex : ISystemIndex
{
}

然后您将创建一个类型目录

var tCatalog = new TypeCatalog(typeof(MySystemIndex));

那么您会在 tCatalog.Parts 中看到它。

编辑

如果您想按特定条件过滤目录(例如,在您的情况下,仅导出),请查看 MEF 关于 Filtering Catalogs 的文档

关于c# - 类型目录的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9199393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com