gpt4 book ai didi

c# - 如何创建将在子目录中搜索插件的 DirectoryCatalog

转载 作者:行者123 更新时间:2023-11-30 13:26:19 25 4
gpt4 key购买 nike

所以我的目录目录设置如下所示:

DirectoryCatalog directoryCatalog = new DirectoryCatalog(@".\Plugins");
var catalog = new AggregateCatalog(directoryCatalog);
var container = new CompositionContainer(catalog);
container.ComposeParts(this);

它将在我的 Plugins 文件夹中找到任何符合我的导入条件的 .dll。现在为了防止我的插件中出现引用冲突,我想将每个插件放在一个单独的文件夹中。

例如

Plugins -> Plugin1 -> plugin1.dll

      -> Plugin2 -> plugin2.dll

但是我的 DirectoryCatalog 没有找到这些插件。是否有可能实现这个或者我的插件库必须在指定的 .\Plugins 文件夹中

最佳答案

您可以通过将多个Directory Catalogs 添加到Aggregate Catalogs.Catalogs 属性来解决您的问题,如下所示:

var catalog = new AggregateCatalog();
// iterate over all directories in .\Plugins dir and add all Plugin* dirs to catalogs
foreach (var path in Directory.EnumerateDirectories(@".\Plugins", "Plugin*", SearchOption.TopDirectoryOnly))
{
catalog.Catalogs.Add(new DirectoryCatalog(path));
}

_container = new CompositionContainer(catalog);
this._container.ComposeParts(this);

关于c# - 如何创建将在子目录中搜索插件的 DirectoryCatalog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26905630/

25 4 0
文章推荐: javascript - Rangy:如何根据父节点扩展选择?
文章推荐: Firefox 错误中的 Javascript 和 Doctype
文章推荐: ios - 如何向 UILabel 添加计数函数
文章推荐: javascript - 使用 jQuery 在
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com