代码如下 |
复制代码 |
///
/// 缓存操作类
///
public class Cache
{
private static List _allUseCacheKey = new List();
private static ObjectCache _cache = MemoryCache.Default;
///
/// 添加缓存
///
/// Key 唯一
/// 值
/// 超时时间
public static void Add(string key, object value, DateTimeOffset cacheOffset)
{
if (_allUseCacheKey.Contains(key))
{
Remove(key);
}
_allUseCacheKey.Add(key);
_cache.Add(key, value, cacheOffset);
}
///
/// 移除缓存
///
/// Key
public static void Remove(string key)
{
if (_allUseCacheKey.Contains(key))
{
_allUseCacheKey.Remove(key);
}
_cache.Remove(key);
}
///
/// 读取缓存
///
/// Key
///
public static object Read(string key)
{
if (_allUseCacheKey.Contains(key))
return _cache[key];
return null;
}
///
/// 清除所有缓存
///
public static void Clear()
{
foreach (string value in _allUseCacheKey)
{
_cache.Remove(value);
}
_allUseCacheKey.Clear();
}
}
|
代码如下
代码如下 |
复制代码 |
public class SysuserStorageService
{
private int _adminId;
public SysuserStorageService(int adminId)
{
_adminId = adminId;
}
///
/// 缓存一些内容
///
public void Storage()
{
tbl_admin user = new tbl_admin();//根据实际需求获取对象
Cache.Add(_adminId + "-Admin-" + SystemSetting.Wms, user, SystemSetting.OffSetTime);
Cache.Add(_adminId + "-LastLoginTime-" + SystemSetting.Wms, DateTime.Now, SystemSetting.OffSetTime);
}
public tbl_admin GetAdmin
{
get { return (tbl_admin)Cache.Read(_adminId + "-Admin-" + SystemSetting.Wms); }
}
public string GetLastLoginTime
{
get { return ((DateTime)Cache.Read(_adminId + "-LastLoginTime-" + SystemSetting.Wms)).ToString("yyyy-MM-dd HH:mm:ss"); }
}
}
public class SystemSetting
{
///
/// 缓存定义
///
public const string ShopWms = "Wms";
///
/// 缓存超时时间
///
public static DateTimeOffset OffSetTime = DateTimeOffset.Now.AddHours(24);
///
/// 登录Session
///
public const string LoginSession = "";
}
SysuserStorageService storage = new SysuserStorageService(AdminId);//根据ID调用
tbl_admin User = storage.GetAdmin;
|
//页面缓存
[OutputCache(Duration = 300, VaryByParam = "productno;brand;years")]
上述代码使用@OutputCatch指令声明了页面缓存,该页面将被缓存300秒。@OutputCatch指令包括10个属性,通过这些属性能够分别为页面的不同情况进行缓存设置,常用的属性如下所示:
CacheProfile:获取或设置OutputCacheProfile名称。
Duration:获取或设置缓存项需要保留在缓存中的时间。
VaryByHeader:获取或设置用于改变缓存项的一组都好分隔的HTTP标头名称。
Location:获取或设置一个值,该值确定缓存项的位置,包括Any、Clint、Downstream、None、Server和ServerAndClient。默认值为Any。
VaryByControl:获取或设置一簇分好分隔的控件标识符,这些标识符包含在当前页或用户控件内,用于改变当前的缓存项。
NoStore:获取或设置一个值,该值确定是否设置了“Http Cache-Control:no-store”指令。
VaryByCustom:获取输出缓存用来改变缓存项的自定义字符串列表。
Enabled:获取或设置一个值,该值指示是否对当前内容启用了输出缓存。
VaryByParam:获取查询字符串或窗体POST参数的列表。