ASP.Net Web开发基础 互动版

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

Application对象

Application对象HttpApplictionState类的一个实例。该对象可以在多个请求、连接之间共享公用信息,在整个应用程序生存周期中,Application对象都是有效的,可以在应用中的所有页面对其进行存取,就像使用全局变量一样。

Application对象的特点

  • 存储位置:该对象存储于服务器内存中;
  • 生命周期: Web应用收到第一次用户请求时创建,直到Web应用或者服务器重启时销毁,在生命周期内不会自动释放。

Application对象的使用

  • Contents集合的存取

Application对象中包含有一个公开的 Contents 集合,用来保存并共享用户的应用程序信息,语法格式如下:

Application.Contents[Key]=Value

其中Key值为Contents集合的索引,相当与数组的下标。Contents集合是Application对象的默认的集合,书写时可以将Contents省略,格式如下:

Application[Key] = Value

  • Lock和Unlock方法

因为Application对象是共享的,多个用户同时向Application对象写入数据时,可能会造成的写入数据不一致的问题;为了确保某一时刻只能有一个用户对该对象进行修改,引入了Lock和Unlock方法。语法格式如下:

Application.Lock ( ) | Application.Unlock()

如下的例子:

Application.Lock();    //同步,避免同时写入 
Application["counter"]=(int)Application["counter"]+1;  //建立一个会话,该全局变量加1 
Application.UnLock();  //同步结束

在修改信息之前,先使用Lock方法将Application对象锁定;完成信息修改后,再使用Unlock方法将Application对象解锁。

  • Remove方法和Clear方法

Application对象物理存储在服务器内存中,数据不会自动释放;通过Remove方法和Clear方法,可以手动对该对象占用的资源进行释放,语法如下:

Application.Remove( Key )

Application.Clear()

Clear:清除全部的Application 对象变量。

Remove方法删除Application 对象集合中名称为Key的变量,Clear方法清除Application对象中的所有变量。

下面我们将通过一个常见的站点访问统计,来尝试使用Application对象,这里使用了Global.asax,在application开始时初始化计数;篇幅所限,例子放到测试用例里。

运行3_5_application.aspx,通过调试代码,学习使用application对象的使用。