0

我开发的客户端应用程序调用具有多个版本的产品,我的客户可以一个接一个地加载不同版本的产品。

为了在以前的版本中支持这一点,我为每次用户选择版本创建了应用程序域。

这是正确的方法吗?我有其他选择吗?

已编辑: 多个版本 - 多个 dll

谢谢你!

4

2 回答 2

2

如果不同版本的产品驻留在不同的 DLL 中,那么是的,AppDomain 是正确的方法。

尽管请确保您不会将 DLL 泄漏到您的主域。

此外,运行一些测试以确保您不会泄漏内存。

更新

另一种方法是在另一个进程中加载​​ DLL 并使用 RPC 或服务调用。我想这对您的应用程序来说有点过头了。

于 2012-08-08T07:52:58.920 回答
0

我不认为产品必须驻留在不同的 AppDomain 中。这样做的主要原因是什么?您是否希望您的应用程序能够卸载特定的 dll,并在运行时加载相同 dll 的新版本?如果不是...我不明白拥有应用程序域的原因是什么。

当您想保证在卸载程序集时可以释放程序集本身分配的内存时,通常会使用 AppDomain。它在某些类型的应用程序中很有意义。IIS 使用 AppDomains 来管理它正在运行的所有应用程序(以便将应用程序分开)。

为什么不对产品的所有版本使用通用接口,并在内部存储有关产品本身的信息(属性或任何您喜欢的方式)?

于 2012-08-08T07:59:11.743 回答