c# - Assembly.Load 用于不在 deps.json 文件中的程序集

标签 c# .net-core

我正在尝试加载一个程序集并从中动态创建类。这是代码:

assembly = Assembly.Load(assemblyName);
var type = assembly.GetType(assemblyName + ".MessageProcessor");
var processor = (IMessageProcessor)Activator.CreateInstance(type);
processor.Process();

问题是程序集名称属于项目中未引用的程序集。我手动将其部署到执行文件夹。

但是我收到这个错误:

Could not load file or assembly 'AssemblyNameToLoad, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.

我无法手动将所有这些文件添加到 deps.json。尽管 deps.json 文件中不存在,但有没有办法制作 .NET Core 加载程序集?

最佳答案

LoadFrom加载“物理”文件时应该可以解决您的问题。

我应该补充一点,你仍然需要与它进行通信,所以最好了解它,除非你想进行所有反射,所以 loader 和 loaded 应该引用同一个契约(Contract)项目。

关于c# - Assembly.Load 用于不在 deps.json 文件中的程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54073459/

相关文章:

c# - 层次结构对象的通用类工厂或方法

c# - 检测 winform 中窗口的 X 按钮单击

c# - RLDC 表达式编辑器自定义代码

c# - 无法反序列化 JSON

c# - 如何与 .net 中的另一个项目链接

c# - 红隼错误 : address already in use (dotnet core)

asp.net-core - 如何到达openiddict授权服务器的注册页面?

c# - .NET Core 6,选项模式,如何从 appsettings 获取 json 对象数组

c# - 以用户身份安装 Windows 服务

c# - 为什么在这种情况下使用泛型?