私は現在、ASP.NETについてはまったく混乱しています。私は、あなたがそのページによって参照されるウェブページのビジネスモデルを検索するたびに作成され、ディスプレイがユーザに送られた後に、すべてが再び取り崩されると信じていました。ASP.NETビジネスレイヤコードは維持されますが、格納場所はわかりません。
仕事中の同僚は、セッション、キャッシュ、アプリケーション、ビューステート、クエリーストリング、または投稿を使わずに、ページフェッチ間にビジネスレイヤーコードを格納しているようなシンプルな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;
}
}
}
、カウンタが増加するたびに私はボタンを押します。しかし、シングルトンのインスタンスがフレームワーク内でどこに保持されているのか分かりません。私はそれがページの読み込みの間に存在しないと確信していました。誰かがこれにいくつかの光を当てることができますか?それは私を夢中にさせている。
乾杯を、私はのAppDomain /アプリケーションの存続期間を通じて持続静的メンバ変数についての詳細を話し、次のサイトを見つけました:http://devblog.foliotek.com/2009/06/11/avoid-static-variables-in-asp-net/http://www.navwin.com/Topics/AppDomainRecycling/AppDomainRecycling.aspx – Ben