ASP.Net类加载问题

时间:2010-09-28 00:40:43

标签: .net asp.net classloader

1)在标准.Net应用程序中,是否需要加载类? (例如,如果我有一个带有静态构造函数的类,那么静态构造函数是否仅在第一次需要该类时运行?)

2)在ASP.Net MVC(或Web表单)应用程序中,是否在每个使用它的请求上调用静态构造函数?或者仅用于第一个使用它的请求?

3)一般来说,ASP.Net应用程序的生命周期是多少?每个请求是单独执行的吗?从请求到请求是否持续存在?

正如您所看到的,我对.Net运行时何时/如何加载类没有很好的理解,而且我无法为此明确说明正确的Google查询。如果有人能指出我关于这个主题的一般文件,我将非常感激。

1 个答案:

答案 0 :(得分:2)

  1. 在大多数情况下,是的。但是你无法控制执行static constructor的时间,除了保证它在第一次使用之前将被执行并且它将是线程安全的。
  2. 否。只有第一次访问它,每个应用程序域一次。
  3. .Net应用的生命周期取决于IIS application pool设置和应用程序的稳定性。有一个IIS设置可以强制应用程序回收,这可能导致应用程序重新启动。当然,应用程序也可能崩溃,例如非托管库,这也会导致重启。