如何解决.net 5 动态加载 DLL 和所有依赖项
我有一个 .Net 5 工作者服务,它在运行时动态加载一个 DLL 并调用一个方法来设置额外的依赖注入。
Activator.CreateInstance(helperClass) as IDependencyInjectionHelper
helper.SetupInjection(hostContext,services);
这适用于简单的实现,但现在我有需要 EntityFramework 的库。我的工作服务没有对实体框架的引用,并在运行时抛出此错误:
Could not load file or assembly 'Microsoft.EntityFrameworkCore,Version=5.0.7.0,Culture=neutral,PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
如果我将 EntityFrameworkCore 添加到我的工作服务中,一切正常,但动态加载库的原因是我不知道将来需要的一切。
我也尝试通过遵循此 tutorial 来实现这一点。当代码调用 assembly.GetTypes() 时,会抛出异常:
System.Reflection.ReflectionTypeLoadException: '无法加载一个或 更多请求的类型。类型中的方法“SetupInjection” 来自程序集的“TestDatabaseConsumer.InjectionHelper” 'TestDatabaseConsumer,版本=1.0.0.0,文化=中性, PublicKeyToken=null'没有实现。'
异常说我的类没有实现我的接口,但它实现了。 我也尝试过 MEF,但它抛出与上述相同的异常。
如何在运行时加载这些依赖库?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。