ASP.NET 应用程序缓存

ASP.NET 应用程序缓存的研究;首先新建一个 Web 窗体,默认情况下就能够直接使用 Cache 对象来进行缓存的管理,但非常奇怪的是在 Visual Studio 中,当鼠标放到这个 Cache 上时会出现来自 System.Web.Caching.Cache 的提示,但实际上你不能直接使用这个命名空间加上类型来管理缓存,否则会出现错误;当自己键入这个命名空间加上 Cache 时只会出现两个名字带 Expiration 的成员。来自两个不同命名空间的 Cache 对象管理缓存实际上效果是一样的,它们可能都直接作用于当前 Web 应用程序的缓存,如下代码:

System.Web.HttpRuntime.Cache.Insert("cache_test", "System.Web.HttpRuntime.Cache success.
", null, DateTime.Now.AddSeconds(5), System.Web.Caching.Cache.NoSlidingExpiration); System.Web.Caching.Cache cache = new System.Web.Caching.Cache(); Response.Write(System.Web.HttpRuntime.Cache.Get("cache_test").ToString()); Response.Write(Page.Cache.Get("cache_test").ToString()); Response.Write(this.Cache.Get("cache_test").ToString()); Response.Write(cache.Get("cache_test").ToString()); cache.Insert("cache_test", "System.Web.Caching.Cache success.
", null, DateTime.Now.AddSeconds(5), System.Web.Caching.Cache.NoSlidingExpiration); Response.Write(System.Web.HttpRuntime.Cache.Get("cache_test").ToString()); Response.Write(Page.Cache.Get("cache_test").ToString()); Response.Write(this.Cache.Get("cache_test").ToString()); Response.Write(cache.Get("cache_test").ToString()); //对象引用对于非静态的字段、方法或属性“Cache.Insert(...)”是必需的 //System.Web.Caching.Cache.Insert("cache_test", "System.Web.Caching.Cache success.", null, DateTime.Now.AddSeconds(5), System.Web.Caching.Cache.NoSlidingExpiration); //对象引用对于非静态的、方法或属性“Cache.Get(...)”是必需的 //Response.Write(System.Web.Caching.Cache.Get("cache_test").ToString());

因为创建的 Web 窗体会默认继承自 System.Web.UI.Page,所以能够直接使用 Page 类提供的公开成员 Cache;System.Web.HttpRuntime.Cache 是静态类,也能够直接使用;就只有 System.Web.Caching.Cache 需要实例化后使用。 最终的输出结果如下:

System.Web.HttpRuntime.Cache success.
System.Web.HttpRuntime.Cache success.
System.Web.HttpRuntime.Cache success.
System.Web.HttpRuntime.Cache success.
System.Web.Caching.Cache success.
System.Web.Caching.Cache success.
System.Web.Caching.Cache success.
System.Web.Caching.Cache success.

相关环境:
.NET Framework 4.0

你可能感兴趣的:(c#asp.net)