gpt4 book ai didi

c# - 如何正确加载程序集

转载 作者:太空狗 更新时间:2023-10-29 21:50:14 25 4
gpt4 key购买 nike

我开发了一个带有插件的系统,它在运行时加载程序集。我有一个公共(public)接口(interface)库,我在服务器及其插件之间共享。但是,当我为插件文件夹执行 LoadFrom 并尝试查找所有实现公共(public)接口(interface) IServerModule 的类型时,我得到运行时异常:

The type 'ServerCore.IServerModule' exists in both 'ServerCore.dll' and 'ServerCore.dll'

我这样加载插件:

foreach (var dll in dlls)
{
var assembly = Assembly.LoadFrom(dll);
var modules = assembly.GetExportedTypes().Where(
type => (typeof (IServerModule)).IsAssignableFrom(type)
&& !type.IsAbstract &&
!type.IsGenericTypeDefinition)
.Select(type => (IServerModule)Activator.CreateInstance(type));
result.AddRange(modules);
}

我该如何处理这个麻烦?

如有任何帮助,我将不胜感激

最佳答案

检查问题 DLL 及其依赖项。很有可能它从与您的主应用程序不同的 .NET 版本中引入 ServerCore.dll

我建议您使用 MEF如果你想做插件。

关于c# - 如何正确加载程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23083881/

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