using System;
using System.Collections;
using System.Web;
namespace Cache
{
///
/// 缓存操作
///
public class WebCache : ICache
{
private static readonly System.Web.Caching.Cache cache = HttpRuntime.Cache;
///
/// 读取缓存
///
/// 键
///
public T GetCache(string cacheKey) where T : class
{
if (cache[cacheKey] != null)
{
return (T)cache[cacheKey];
}
return default(T);
}
///
/// 写入缓存
///
/// 对象数据
/// 键
public void WriteCache(T value, string cacheKey) where T : class
{
cache.Insert(cacheKey, value, null, DateTime.Now.AddMinutes(10), System.Web.Caching.Cache.NoSlidingExpiration);
}
///
/// 写入缓存
///
/// 对象数据
/// 键
/// 到期时间
public void WriteCache(T value, string cacheKey, DateTime expireTime) where T : class
{
cache.Insert(cacheKey, value, null, expireTime, System.Web.Caching.Cache.NoSlidingExpiration);
}
///
/// 移除指定数据缓存
///
/// 键
public void RemoveCache(string cacheKey)
{
if (cacheKey.Equals("All"))
{
this.RemoveCache();
}
else
{
cache.Remove(cacheKey);
}
}
///
/// 移除全部缓存
///
public void RemoveCache()
{
IDictionaryEnumerator cacheEnum = cache.GetEnumerator();
while (cacheEnum.MoveNext())
{
if (cacheEnum.Key != null) cache.Remove(cacheEnum.Key.ToString());
}
}
}
}