静态对象/多个应用程序域/一个进程

本文关键字:进程 一个 应用程序域 对象 静态 | 更新日期: 2023-09-27 18:36:13

好的,这就是问题所在,我有一个严重依赖静态变量的winform 应用程序,它是一个单例应用程序(一次只有一个进程实例)。

我现在需要创建一个包装应用程序,该应用程序将创建其中的 6 个 winform 应用程序并在它们的主窗口之间切换。这样做的原因是,这些应用程序有很多静态引用,必须根据它们连接到的数据库进行更新。我们的用户现在需要连接到多个数据库,重新设计代码以摆脱静态问题不是一种选择。

所以我的问题是,我知道我可以在一个过程中创建新的应用程序域,但是这些应用程序域中的每一个是否都获得了一组新的静态引用?还是我实际上必须有单独的流程?如果是这样,我该如何构建一个新应用程序,该应用程序将创建旧应用程序的 6 个实例并将数据传达给每个实例(例如隐藏/显示、加载此对象、查询此数据库等......寻找一些简单的东西,因为这最终将成为一个一次性项目。

谢谢!

静态对象/多个应用程序域/一个进程

每个应用域都有自己的一组加载程序集(域间共享的中性程序集除外)和类型。应用程序域中的每个类型都有自己的静态变量实例(对于非特定域程序集,CLR 以特殊方式提供此功能)。