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;
}
}
}