这可能是Asp.net Static Variable Life time Across Refresh 和 PostBack的重复,但我的查询有点不同。
我有一个网页应用程序,即 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;
}
}