配置文件
<appSettings>
<add key="EnableCache" value="true"/>
<add key="CacheDurationSeconds" value=""/>
</appSettings>
操作方法
代码
using System;
using System.Web.Configuration;
public class SiteHelper
public class SiteHelper
{
static public object GetCache(string CacheId)
{
object objCache = System.Web.HttpRuntime.Cache.Get(CacheId);
// 判断 Cache 是否启用
// 判断 Cache 是否启用
if (WebConfigurationManager.AppSettings["EnableCache"] ==null
||!Convert.ToBoolean(WebConfigurationManager.AppSettings["EnableCache"]))
{
objCache =null;
System.Web.HttpRuntime.Cache.Remove(CacheId);
}
return objCache;
}
///<summary>
/// 写入 Cache 资料 ( 预设 60 秒 )
///</summary>
///<param name="CacheId"></param>
///<param name="objCache"></param>
static public void SetCache(string CacheId, object objCache)
{
if (WebConfigurationManager.AppSettings["CacheDurationSeconds"] !=null)
{
SetCache(CacheId, objCache, Convert.ToInt32(WebConfigurationManager.AppSettings["CacheDurationSeconds"]));
}
else
{
SetCache(CacheId, objCache, );
}
}
static public void SetCache(string CacheId, object objCache, int cacheDurationSeconds)
{
if (objCache !=null)
{
System.Web.HttpRuntime.Cache.Insert(CacheId, objCache, null, System.Web.Caching.Cache.NoAbsoluteExpiration,new TimeSpan(, , cacheDurationSeconds), System.Web.Caching.CacheItemPriority.High, null);
}
}
}
使用方法
代码 string strCache1 = SiteHelper.GetCache("Cache1") asstring;
if (strCache1 ==null) { Response.Write("<p>Cache is empty</p>");
strCache1 ="OK"; SiteHelper.SetCache("Cache1", strCache1, ); }
Response.Write(strCache1);
常见问题#Cache显示与清空问题
代码 List<string> cacheKeys =new List<string>();
IDictionaryEnumerator cacheEnum = Cache.GetEnumerator();
while (cacheEnum.MoveNext())
{
cacheKeys.Add(cacheEnum.Key.ToString());
}
foreach (string cacheKey in cacheKeys)
{
Cache.Remove(cacheKey);
}
代码 //清除所有缓存
protected void RemoveAllCache()
{
System.Web.Caching.Cache _cache = HttpRuntime.Cache;
IDictionaryEnumerator CacheEnum = _cache.GetEnumerator();
ArrayList al =new ArrayList();
while (CacheEnum.MoveNext())
{
al.Add(CacheEnum.Key);
}
foreach (string key in al)
{
_cache.Remove(key);
}
show();
}
//显示所有缓存
void show()
{
string str ="";
IDictionaryEnumerator CacheEnum = HttpRuntime.Cache.GetEnumerator(); while (CacheEnum.MoveNext())
{
str +="缓存名<b>["+ CacheEnum.Key +"]</b><br />";
}
this.Label1.Text ="当前网站总缓存数:"+ HttpRuntime.Cache.Count +"<br />"+ str;
}
添加到扩展方法
代码 using System;
using System.Web.Caching;
using System.Collections;
using System.Collections.Generic; ///<summary>
/// 扩充 System.Web.Caching 命名空间的 Extension Methods
///</summary>
static public class CacheExtensionMethod
{
public static void Clear(this Cache x)
{
List<string> cacheKeys =new List<string>();
IDictionaryEnumerator cacheEnum = x.GetEnumerator();
while (cacheEnum.MoveNext())
{
cacheKeys.Add(cacheEnum.Key.ToString());
}
foreach (string cacheKey in cacheKeys)
{
x.Remove(cacheKey);
}
}
}