欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » ASP.Net » 正文

热门阅读

ASP.NET HttpApplication 属性 Application(HttpApplicationState)详解

创建时间:2011年08月03日 16:32  阅读次数:(6666)
分享到:
·MSDN:启用 ASP.NET 应用程序中多个会话和请求之间的全局信息共享。 

·类型:System.Web.HttpApplicationState : NameObjectCollectionBase(集合)

·应用程序状态是可供 ASP.NET 应用程序中的所有类使用的数据储存库。它存储在服务器的内存中,因此与在数据库中存储和检索信息相比,它的执行速度更快。与特定于单个用户会话的会话状态不同,应用程序状态应用于所有的用户和会话。因此,应用程序状态非常适合存储那些数量少、不随用户的变化而变化的常用数据。 

·应用程序状态存储在 HttpApplicationState 类中,该类是用户首次访问应用程序中的任何 URL 资源时创建的一个新实例。HttpApplicationState 类通过 Application 属性公开。应用程序状态将数据存储为 Object 数据类型。因此,在检索该数据时,必须将其重新转换为适当的类型。
 
·应用程序的当前状态由一个应用程序范围内对象的键/值对字典组成,可将其用于存储与来自多个客户端的多个 Web 请求相关的 .NET Framework 对象和标量值。ASP.NET 应用程序是单个 Web 服务器上的某个虚拟目录及其子目录范围内的所有文件、页、处理程序、模块和代码的总和。HttpApplicationState 类的单个实例在客户端第一次从某个特定的 ASP.NET 应用程序虚拟目录中请求任何 URL 资源时创建。 对于 Web 服务器上的每个 ASP.NET 应用程序都要创建一个单独的实例。 然后通过内部 Application 对象公开对每个实例的引用。 

·注:由于应用程序状态存储在服务器的内存中,因此应用程序状态中的大量数据可快速填充服务器内存。如果重新启动应用程序,应用程序状态数据便会丢失。应用程序状态不在网络场(应用程序被多台服务器承载)或网络园(应用程序被同一台计算机上的多个进程承载)中共享。 最后还请注意,应用程序状态采用自由线程模式,因此存储在应用程序状态中的任何数据必须具有内置的同步支持。
 
常用方法和属性: 

注意
·索引方式不推荐使用,1:只读,2:很容易空指针和数组越界。 
·对象名方式:对象名存在时,值会覆盖,对象名不存在时返回 null,不会抛异常。 
·保存和更新操作记得加锁,完事后记得解锁。 

常用方法: 
//将新的对象添加到 HttpApplicationState 集合中(对象名-值)。
Application.Add("Count", 5);

//更新 HttpApplicationState 集合中的对象值。 
Application.Set("Count", 55);

//通过名称获取 HttpApplicationState 对象。
Application.Get("Count");

//通过索引获取 HttpApplicationState 对象名。 
Application.Get(0);
Application.GetKey(0);

//从 HttpApplicationState 集合中移除命名对象。 
Application.Remove("Count");

//按索引从集合中移除一个 HttpApplicationState 对象。 
Application.RemoveAt(0);

//从 HttpApplicationState 集合中移除所有对象。
Application.RemoveAll();
Application.Clear();

常用属性:
//通过名称获取单个 HttpApplicationState 对象的值。Item[Int32](读写)
Application["Count"] = 11;

//通过索引获取单个 HttpApplicationState 对象。 Item[String](只读) 
object obj = Application[0];    

//获取 HttpApplicationState 集合中的对象数。默认为0;
int count = Application.Count;

//获取 HttpApplicationState 集合中的访问键。对象名的字符串数组。
string[] keys = Application.AllKeys;

//获取对 HttpApplicationState 对象的引用。 该属性提供与早期版本的 ASP 之间的兼容性。 
HttpApplicationState AppState = Application.Contents;

注意:保存应用程序状态中的值 :用锁定方法将值写入应用程序状态:应用程序状态变量可以同时被多个线程访问。因此,为了防止产生无效数据,在设置值前,必须锁定应用程序状态,只供一个线程写入。除非设置了其他类型的锁,否则就应该始终在 lock 语句中修改应用程序状态数据。 
//锁定对 HttpApplicationState 变量的访问以促进访问同步。
Application.Lock();

//更新对象值
Application["Count"] = ((int)Application["Count"]) + 1;

//取消锁定对 HttpApplicationState 变量的访问以促进访问同步。 
Application.UnLock();
来源:http://blog.csdn.net/matchcolor/article/details/5342378
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论0条
  • 暂无任何评论,请留下您对本文章的看法,共同参入讨论!
发表评论:
留言人:
内  容:
请输入问题 19+83=? 的结果(结果是:102)
结  果: