是否通过不同的应用程序共享单身人士?

问题描述:

我在想:如果我创建一个带有私有构造函数的单例类和一个将返回此类的实例的静态方法,然后将其放入程序集,如果从两个不同的应用程序访问此实例,会发生什么情况?是否通过不同的应用程序共享单身人士?

做的应用程序将总是共享同一个实例的单例?

如果这两个应用程序从内存中卸载,实例也将被释放?

谢谢。

两个不同的应用程序将不是共享对象,没有。他们当然会共享完全相同的对象代码,因为他们正在加载相同的程序集,但他们每个都会在自己的地址空间中拥有自己的单个副本。

实际上 - 即使是相同的应用程序,运行两次,也不会在它们之间共享实际的Singleton实例。

+1

更具体地讲,静态实例不能跨应用程序域边界共享,因此你甚至可以在一个正在运行的应用程序实例2个单身。 – codekaizen 2010-10-11 09:00:01

我不这么认为,没有做任何事你会有一个单身人士每个应用程序空间。

如果您没有通过将其保存/加载到驱动器或数据库中的相同物理位置来使其成为共享单身人士,则不是。

Singleton类将按照每个AppDomain的基础,因此如果您有多个加载您的单例类的appdomain,而不是单个类的多于1个的实例。

跨进程辛格尔顿没有任何意义,你将有不同的情况下