asp.net mvc - 静态构造函数

Sto*_*art 1 asp.net-mvc static constructor

我想问一些关于asp.net mvc的问题

  1. 静态构造函数会初始化每个用户请求吗?
  2. 每个用户都有静态数据共享吗?

Meh*_*ari 5

这个答案是完全通用的,不仅适用于ASP.NET MVC.

  1. 静态构造函数每个应用程序域最多运行一次.它保证在该类的任何静态或实例成员访问之前运行.所以不,每次请求都不会调用它.

  2. 是的,静态数据通过整个应用程序域共享.每个应用程序域都有不同的静态数据.因此,除非您在Web园或Web场场景上运行,否则它将为所有用户共享.附注:如果将静态字段声明为ThreadStatic,则它们仅适用于单个线程,这在ASP.NET应用程序中可能没有多大意义.