如何创建一个进程范围的单例对象?

时间:2008-09-11 21:13:32

标签: .net singleton

我读到.Net中静态字段的粒度单位是每个AppDomain,而不是每个进程。是否可以创建一个进程范围的单例对象?

1 个答案:

答案 0 :(得分:2)

您必须使用已编组的呼叫在AppDomains之间传递信息。因此,您需要在父AppDomain中创建状态对象,然后将其传递给任何想要使用它的子项。如果您不必这样做,那么您将在AppDomains之间共享内存,这会破坏目的。

在每个AppDomain中,您可以拥有一个单例,该单例包含对主域中实际单例的(编组)引用的引用。所以你的代码看起来仍然是“singleton-y”,但它背后会有一些隐藏的线路。