using System;
using System.Collections.Generic;
using System.Text;
using System.Web.Caching;
using System.Web.UI;
namespace ASPNETCaCheHelpers
{
/// <summary>
/// 在ASPNET应用程序中使用缓存的助手类
/// </summary>
public class CaCheHelper
{
/// <summary>
/// 一个缓存类实例
/// </summary>
private Cache cache;
/// <summary>
/// 缓存池实例
/// </summary>
public Cache Cacheobj
{
set
{
this.cache = value;
}
}
/// <summary>
/// 添加一个基于文件依赖的缓存
/// </summary>
/// <param name="cachename">缓存的名称</param>
/// <param name="value">要缓存的数据</param>
/// <param name="filepath">缓存依赖的文件路径</param>
/// <param name="callback">当缓存被清空时要执行的委托</param>
/// <returns>返回缓存添加结果True添加成功False失败</returns>
public bool AddFileCacheDependency(string cachename,object value,string filepath,CacheItemRemovedCallback callback)
{
CacheDependency cachedependency = new CacheDependency(filepath);
if (cache.Add(cachename, value, cachedependency, Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration, CacheItemPriority.Normal, callback) != null)
{
return true;
}
return false;
}
/// <summary>
/// 添加一个基于数据库依赖的缓存
/// </summary>
/// <param name="cachename">缓存的名称</param>
/// <param name="databasename">缓存依赖的数据库名称</param>
/// <param name="cachetable">缓存依赖的数据表名称</param>
/// <param name="value">要缓存的数据</param>
/// <param name="callback">当缓存被清空时要执行的委托</param>
/// <returns>返回缓存添加结果True添加成功False失败</returns>
public bool AddDataBaseCacheDependency(string cachename,string databasename,string cachetable, object value, CacheItemRemovedCallback callback)
{
SqlCacheDependency cachedependency = new SqlCacheDependency(databasename, cachetable);
if (cache.Add(cachename, value, cachedependency, Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration, CacheItemPriority.Normal, callback) != null)
{
return true;
}
return false;
}
/// <summary>
/// 获取缓存数据
/// </summary>
/// <param name="cachekey">缓存中指定缓存项名称</param>
/// <returns>返回缓存数据,若不存在指定缓存项则返回null</returns>
public object GetCacheData(string cachekey)
{
if (cache[cachekey] != null)
{
return cache[cachekey];
}
return null;
}
}
}
数据缓存助手类
最新推荐文章于 2023-03-11 06:30:00 发布