实例化对象生存期

时间:2012-05-24 13:48:19

标签: asp.net

我正在设计一个新的ASP.NET网站(ASP.NET对我来说有点新,所以请原谅愚蠢的问题)我想知道我将在Global.asax {{1事件(即Application_Start)。我会通过静态指针在某处引用该对象。

我之所以考虑这样做是为了为正在运行的ASP.NET应用程序创建一个主对象,该对象将跟踪每个用户(浏览器)的一些信息,即使我将大部分信息存储在我的数据库。换句话说,我想使用由用户键索引的会话数组,这个数组将是new myClass()中的一个元素,如上所述,它在Global.asax的myClass事件中实例化。我将定期修剪我的阵列,以解释在NN分钟后已经关闭或没有做任何事情的用户。

或者,这只是坚果,因为在应用程序生命期间实例化的对象在生命周期方面不可靠。

提前致谢!

亲切的问候, 德里克

2 个答案:

答案 0 :(得分:1)

为什么不使用应用程序缓存?

不幸的是,msdn现在似乎已经关闭,但链接是 http://msdn.microsoft.com/en-us/library/system.web.httpcontext.cache.aspx

可以通过当前HttpApplication的Context属性在您的asp.net站点中访问它。

答案 1 :(得分:0)

创建对象的位置并不重要,重要的是存储对象的引用。

如果将引用放在静态变量中,只要应用程序正在运行,该对象就会存在。

在Web应用程序中使用静态变量可以有其用途,但您必须小心,因为Web应用程序是多线程的。如果更改对象中的任何数据,则必须同步对数据的访问,以便一次只有一个线程可以访问它。