私は今、ASP.NET について非常に混乱しています。Web ページを取得するたびに、そのページによって参照されるビジネス モデルが作成され、表示がユーザーに送信された後、すべてが再び解体されると私は信じていました。
職場の同僚が、セッション、キャッシュ、アプリケーション、ビューステート、クエリ文字列、または投稿を使用せずに (私が知る限り)、ページ フェッチ間でビジネス レイヤー コードを格納しているように見えるこの単純な Web アプリを見せてくれました。
コードは次のとおりです。
<form id="form1" runat="server" enableviewstate="False">
<div>
<asp:Label ID="Label1" runat="server" Text="Label" EnableViewState="False"></asp:Label>
<asp:Button ID="Button1"
runat="server" Text="Button" EnableViewState="False"
CausesValidation="False" />
</div>
</form>
ページの読み込み:
PersistanceTest.BLL.Singleton s = PersistanceTest.BLL.Singleton.GetInstance;
Label1.Text = "Counter: " + s.GetCounter;
そしてシングルトンクラス:
public class Singleton
{
private int counter;
private Singleton()
{
counter = 0;
}
private static Singleton theSingleton;
static public Singleton GetInstance
{
get
{
if(theSingleton == null)
{
theSingleton = new Singleton();
}
return theSingleton;
}
}
public int GetCounter
{
get
{
int c = counter;
counter++;
return c;
}
}
}
ページを読み込むと、ボタンを押すたびにカウンターが増加します。しかし、Singleton インスタンスがフレームワークのどこに永続化されているのかわかりません。ページの読み込みの間に存在しないと確信していました。誰かがこれに光を当てることができますか? それは私を夢中にさせています。