1

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

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

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

提前致谢!

亲切的问候,德里克

4

2 回答 2

1

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

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

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

于 2012-05-24T13:56:41.580 回答
0

创建对象的位置无关紧要,重要的是存储对象引用的位置。

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

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

于 2012-05-24T13:54:41.010 回答