我正在设计一个新的ASP.NET网站(ASP.NET对我来说有点新,所以请原谅愚蠢的问题)我想知道我将在Global.asax {{1事件(即Application_Start
)。我会通过静态指针在某处引用该对象。
我之所以考虑这样做是为了为正在运行的ASP.NET应用程序创建一个主对象,该对象将跟踪每个用户(浏览器)的一些信息,即使我将大部分信息存储在我的数据库。换句话说,我想使用由用户键索引的会话数组,这个数组将是new myClass()
中的一个元素,如上所述,它在Global.asax的myClass
事件中实例化。我将定期修剪我的阵列,以解释在NN分钟后已经关闭或没有做任何事情的用户。
或者,这只是坚果,因为在应用程序生命期间实例化的对象在生命周期方面不可靠。
提前致谢!
亲切的问候, 德里克
答案 0 :(得分:1)
为什么不使用应用程序缓存?
不幸的是,msdn现在似乎已经关闭,但链接是 http://msdn.microsoft.com/en-us/library/system.web.httpcontext.cache.aspx
可以通过当前HttpApplication的Context属性在您的asp.net站点中访问它。
答案 1 :(得分:0)
创建对象的位置并不重要,重要的是存储对象的引用。
如果将引用放在静态变量中,只要应用程序正在运行,该对象就会存在。
在Web应用程序中使用静态变量可以有其用途,但您必须小心,因为Web应用程序是多线程的。如果更改对象中的任何数据,则必须同步对数据的访问,以便一次只有一个线程可以访问它。