這可能是Asp.net Static Variable Life time Across Refresh and PostBack的可能重複,但我的查詢有點不同。asp.net:每次有回發到頁面時,都會調用靜態構造函數嗎?
我有一個網頁的應用程序,即default.aspx。我有一個靜態構造函數和一個靜態屬性「MyProperty」的公共靜態類「MyClass」,該類在default.aspx.cs類之外。
靜態類的屬性在頁面加載和單擊按鈕時分配。
現在,我知道一個類型的靜態構造函數只會在類的任何屬性被調用或賦值時才被調用一次。這是根據AppDomain
。之後,靜態構造函數將永遠不會被調用。
我也知道,一個應用程序域是一個.NET構造,它提供了一個過程中加載的程序集集之間的隔離層。
所以我的問題這裏有
- 可能有人請詳細說明
AppDomain
在asp.net的條款?任何相關的鏈接也將有所幫助。 - 我知道頁面對象是在每次回發時創建和銷燬的。因此,對於下面的代碼,每次有回發時都會調用靜態構造函數嗎?
我試着在靜態構造函數中保留斷點來調試代碼。當第一次加載頁面時斷點被擊中,但當我點擊按鈕時沒有擊中。但我不確定這是否會在IIS上託管時以相同的方式工作,因此希望得到一些專家意見。瀏覽器是IE10。
請讓我知道,如果我沒有正確框定任何句子或說錯了什麼。
在此先感謝。
問候,
薩馬
public static class MyClass { public static int MyProperty { get; set; } static MyClass() { } }
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
MyClass.MyProperty = 2;
}
protected void Button1_Click(object sender, EventArgs e)
{
MyClass.MyProperty = 1;
}
}
優秀的文章!謝謝,它清除了我所有的疑慮(暫時):) – samar