0

假设我在不同的 dll 中有 3 个抽象级别,组成我的应用程序

  • 原始
  • 基本实现 Primitive
  • Foo 实现 Basic

而我的应用程序动态加载了Foo(Assembly.Load, Activator...),默认调用的是CurrentDomain_AssemblyResolve事件,因为他找不到Basic类的实现所以我可以输入正确的路径来加载Basic类。

根据我的业务运营,我的应用程序必须在 100% 的时间内处于活动状态。但是我可能会更改 Foo 的实现(无论是通过错误修复还是更改功能)所以,我要做的是更改 dll 的路径(配置),并且下次调用此函数时使用“另一个” Foo .

它工作得很好,但是如果我需要再次加载另一个 Basic 类(在这种情况下我将重新编译 Basic 和 Foo),我必须重新启动应用程序,有一种方法可以指示我去时使用哪个抽象实例化一个新的 Foo?

我知道程序集永远不会被释放(旧版本),但这对我来说不是问题。

4

0 回答 0