ASP.NET静态类和asp.net会话

时间:2012-09-28 14:37:47

标签: asp.net static-methods static-classes

有人会非常友好地解释或指向解释静态类和方法的范围如何与ASP.NET用户会话范围交互的文章。

以下是解释我问题的更具体情况:

  1. 用户A登录到asp.net网站。
  2. 在做某事时,用户A使用静态方法初始化某些数据。
  3. 用户B登录到同一个asp.net网站。
  4. 用户B点击相同的静态方法。
  5. 一旦用户B命中数据,数据是否已经初始化?

    如果用户A的asp.net会话在用户B访问网站之前到期会怎么样?

2 个答案:

答案 0 :(得分:11)

只要进程正在运行,静态数据就会存在。它附在类型上。

如果初始化的数据是在静态上下文中,那么当用户B命中该方法时,它就已经初始化了。

会话与此无关 - 只有流程。

如果流程被回收,那么数据将不得不重新初始化。

答案 1 :(得分:2)

查看以下帖子:Why does my ASP.Net static function's "context" crossover between user sessions?

What is the scope of a Static Class?

C# Static variables - scope and persistence

http://msdn.microsoft.com/en-us/library/ms173138(v=vs.100).aspx

简而言之:

一旦用户B命中数据,数据是否已经初始化?

如果用户A的asp.net会话在用户B访问网站之前到期,该怎么办?

用户B将访问用户A初始化的数据

  

静态数据在您的整个应用程序域之间共享   Web应用程序。它在所有服务请求的线程中共享   webapp,它不以任何方式绑定到会话/线程/用户,而是绑定到   webapp作为一个整体。