次のようにしてSingletonを実装し、App_Codeに入れると、インスタンスは次のようになります。 回収された 各往復HTTP要求の後にGCによる?それとも、それでもランタイムに残るでしょうか?何か助けをありがとう。
public sealed class Singleton
{
static readonly Singleton instance=new Singleton();
static Singleton()
{
}
Singleton()
{
}
public static Singleton Instance
{
get
{
return instance;
}
}
}
回答:
回答№1は1いいえ、HTTPリクエストごとではありません。それを証明するために、読み取り専用のタイムスタンプをクラスに追加しました。
public readonly DateTime Timestamp = DateTime.Now;
その後、プロジェクト内のページでそれを参照しました。更新のたびに同じままでした。
あなたはGCについて言及します。 GCがいつオブジェクトを回収するかについての保証はないことを忘れないでください(GC.Collect()でもオブジェクトが回収されることを保証するとは思わない)。
基本的に、はい、あなたのシングルトンは、少なくともアプリケーションがリサイクルされるまで、シングルトンとして機能します。