41

如果我有一个标准的 ASP.NET 应用程序,那么将对象设为静态与将对象实例置于应用程序状态之间有什么区别吗?

据我了解,这两个对象在应用程序域中都存在一次。

其次,如果您在引用的 dll 中有一个静态对象,对于 ASP.NET 站点,会发生什么情况。它也是应用程序域的一部分,所以它总是存在一次?

4

1 回答 1

58

来自: http: //support.microsoft.com/default.aspx ?scid=kb;en-us;Q312607

ASP.NET 包括应用程序状态,主要是为了与经典 ASP 兼容,以便更容易将现有应用程序迁移到 ASP.NET。建议您将数据存储在应用程序类的静态成员中,而不是应用程序对象中。这提高了性能,因为您可以比访问应用程序字典中的项目更快地访问静态变量。

另外,是的,静态变量的行为方式相同,无论它们是从哪里加载的,并且每个应用程序域仅存在一次(除非您谈论的是那些标记为 [ThreadStatic] 的变量)

于 2008-11-19T23:23:46.803 回答