在单个 AppDomain 上运行多个应用程序实例时如何防止属性覆盖?

Posted

技术标签:

【中文标题】在单个 AppDomain 上运行多个应用程序实例时如何防止属性覆盖?【英文标题】:How to prevent property overriding when running multiple app instances on single AppDomain? 【发布时间】:2017-01-14 12:17:11 【问题描述】:

我有一个应用程序在单个 AppDomain 上运行自身的多个实例,它就是这样设计的。

我有几个 静态属性,它们在开始时被初始化,每个对于运行它的实例都是唯一的。

现在当我运行第一个实例时,一切都很好,但是当我运行第二个实例时,它会覆盖第一个实例的属性。

我怎样才能防止这种情况发生?

在这种情况下我不能使用单例模式。

【问题讨论】:

***.com/questions/9806372/… 相关吗? 【参考方案1】:

c# 中,static 属性旨在在同一类的所有实例之间共享,无论有多少实例。 以DateTime.Now为例

如果属性在类的实例之间是唯一的,则不应使用static修饰符。

【讨论】:

以上是关于在单个 AppDomain 上运行多个应用程序实例时如何防止属性覆盖?的主要内容,如果未能解决你的问题,请参考以下文章

多个 .NET AppDomain 的代码示例

IIS AppDomain 实例化

最佳实践:单个 Amazon EC2 实例上的多个 django 应用程序

是否可以在单个 GRPC 服务器上运行同一服务的多个实例?

从另一个 WPF 应用程序加载 WPF 应用程序程序集,出现错误:无法在同一个 AppDomain 中创建多个 System.Windows.Application 实例

将派生类型序列化为 AppDomain 上的基本类型