Cache,ViewState,Session,Application,Static变量
在ASP.NET中用于跨页面存储与传递数据的类有标题中所示的几种,今天因为在一个站点中对Cache的作用范围理解错误,导致了加班,所以特意写个小程序对他们进行测试.
写了一个小程序来对这些程序进行一个测试,发现:
Session,ViewState,都属于是页面级的变量,就是说每个客户端都对应着一个不同的实例,互相之间的操作不会有影响.ViewState又是只对某个页面起作用,和下面的static变量很象,并且只有能够序列化的对象才能放入ViewState中,这点在自己写类的时候要注意!
Application,Cache,static,都是属于应用程序级的变量,就是说在整个WEB站点不管有多少用户连接,都共享这一个实例.无论谁的操作,都可能导致别的用户取到错误的结果.
其中static又与另两个有所不同,Application和Cache是不管你在哪个页面,都可以访问,而static只在声明他的页面起作用!如果你声明在实现了HttpHandler的类中,而所有的页面又从你自己写的这个类中继承,那就和Application几乎没什么区别了!
因为,Cache只适合存放应用程序级的配置信息等!
来源:http://spaces.msn.com/members/yan0lovesha/Blog/cns!1pGx6lWe44BXcF3ndW5Asbqg!127.entry