关于静态类的生命周期

DYFDWX 2012-05-24 09:45:00
环境vs2008
class A
{
public static str{get;set;}
}
页面1 pageload事件A.str="123";this.textbox1.text=A.str;
页面2 pageload事件this.textbox1.text=A.str;
测试1 先运行页面1,再从页面(按钮response.redict("default2.aspx"))跳转到页面2,正常读取123
测试2 关闭所有页面,直接运行页面2,正常读取123
测试3 关闭所有页面,关闭iis,直接运行页面2,不能正常读取

请问静态类的生命周期是?(ASP。NET网站开发)



...全文
416 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinianjun 2014-06-10
  • 打赏
  • 举报
回复
引用 1 楼 hjywyj 的回复:
iis的生命周期
他这不是静态类,只是一个静态变量
moonwrite 2012-05-24
  • 打赏
  • 举报
回复
public static str{get;set;}
属性其实是方法 所以这个是个静态方法
它自动生成一个静态变量

你想问静态变量的生命周期

静态变量都是和进程同生共死的

其实。NET 还有一个AppDomain(相当于进程中的子进程)的概念
貌似吧一个dll从AppDomain卸载 该dll中的静态变量也会跟着挂了
而吧AppDomain从进程中卸载 该AppDomain中的所有静态变量都挂了

微软提成AppDomain的一个原因就是让IIS进程中可以有多个AppDomain
每个AppDomain基本运行着一个网站
当然你可以让每个进程都运行一个网站

详情请看 CLR via C# 这本书


bdmh 2012-05-24
  • 打赏
  • 举报
回复
iis都关掉了,从哪要数啊
  • 打赏
  • 举报
回复
你这只是静态属性罢了
静态成员是在类型加载的时候初始化,在调用构造函数之前,而一般的实例事件(像pageload)都是在构造函数里面注册的
特殊的,是静态构造函数是在第一次访问类型时调用,静态事件也属于静态成员
  • 打赏
  • 举报
回复
iis的生命周期
chen_ya_ping 2012-05-24
  • 打赏
  • 举报
回复
跟这个东西有关AppDomain
如果这个停止了,你的静态的变量也就没有了

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧