如果我在 asp.net 中的集合周围有一个单例包装器,它是否必须被缓存,或者它的数据是否会在回发中持久保存?
此外,如果另一个用户登录到应用程序,该应用程序是否会创建另一个实例(自身),从而创建另一个单例实例,还是会访问在第一个实例中创建的同一个单例?
单例的实际实现是以下之一:(设计1:)
using System;
public sealed class Singleton
{
private static volatile Singleton instance;
private static object syncRoot = new Object();
private Singleton() {}
public static Singleton Instance
{
get
{
if (instance == null)
{
lock (syncRoot)
{
if (instance == null)
instance = new Singleton();
}
}
return instance;
}
}
}
或设计 2:
public sealed class Singleton
{
private static readonly Singleton instance = new Singleton();
private Singleton(){}
public static Singleton Instance
{
get
{
return instance;
}
}
}