/// <summary>
/// 缓存操作类
/// </summary>
public class Cache
{
private static List<string> _allUseCacheKey = new List<string>();
private static ObjectCache _cache = MemoryCache.Default; /// <summary>
/// 添加缓存
/// </summary>
/// <param name="key">Key 唯一</param>
/// <param name="value">值</param>
/// <param name="cacheOffset">超时时间</param>
public static void Add(string key, object value, DateTimeOffset cacheOffset)
{
if (_allUseCacheKey.Contains(key))
{
Remove(key);
}
_allUseCacheKey.Add(key);
_cache.Add(key, value, cacheOffset);
} /// <summary>
/// 移除缓存
/// </summary>
/// <param name="key">Key</param>
public static void Remove(string key)
{
if (_allUseCacheKey.Contains(key))
{
_allUseCacheKey.Remove(key);
}
_cache.Remove(key);
} /// <summary>
/// 读取缓存
/// </summary>
/// <param name="key">Key</param>
/// <returns></returns>
public static object Read(string key)
{
if (_allUseCacheKey.Contains(key))
return _cache[key];
return null;
} /// <summary>
/// 清除所有缓存
/// </summary>
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;
} /// <summary>
/// 缓存一些内容
/// </summary>
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
{
/// <summary>
/// 缓存定义
/// </summary>
public const string ShopWms = "Wms"; /// <summary>
/// 缓存超时时间
/// </summary>
public static DateTimeOffset OffSetTime = DateTimeOffset.Now.AddHours(); /// <summary>
/// 登录Session
/// </summary>
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参数的列表。

C# ObjectCache、OutputCache缓存的更多相关文章

  1. OutputCache缓存各参数的说明

    Duration 缓存时间,以秒为单位,这个除非你的Location=None,可以不添加此属性,其余时候都是必须的. Location Location当被设置为None时,其余的任何设置将不起作用 ...

  2. [置顶] MVC输出缓存(OutputCache参数详解)

    1.学习之前你应该知道这些 几乎每个项目都会用到缓存,这是必然的.以前在学校时做的网站基本上的一个标准就是1.搞定增删改查2.页面做的不要太差3.能运行(ps真的有这种情况,答辩验收的时候几个人在讲台 ...

  3. MVC输出缓存(OutputCache参数详解)

    版权声明:本文为博主原创文章,未经博主允许转载随意. https://blog.csdn.net/kebi007/article/details/59199115 1.学习之前你应该知道这些 几乎每个 ...

  4. MVC缓存

    MVC入门系列教程-视频版本,已入驻51CTO学院,文本+视频学效果更好哦.视频链接地址如下: 点我查看视频.另外,针对该系列教程博主提供有偿技术支持,群号:226090960,群内会针对该教程的问题 ...

  5. MVC缓存02,使用数据层缓存,添加或修改时让缓存失效

    在"MVC缓存01,使用控制器缓存或数据层缓存"中,在数据层中可以设置缓存的有效时间.但这个还不够"智能",常常希望在编辑或创建的时候使缓存失效,加载新的数据. ...

  6. MVC缓存,使用数据层缓存,添加或修改时让缓存失效

    在"MVC缓存01,运用控制器缓存或数据层缓存"中,在数据层中可以设置缓存的有用时刻.但这个还不够"智能",常常期望在修改或创立的时分使缓存失效,加载新的数据. ...

  7. ABP入门系列(13)——Redis缓存用起来

    ABP入门系列目录--学习Abp框架之实操演练 源码路径:Github-LearningMpaAbp 1. 引言 创建任务时我们需要指定分配给谁,Demo中我们使用一个下拉列表用来显示当前系统的所有用 ...

  8. Redis缓存用起来

    Redis缓存用起来 1. 引言 创建任务时我们需要指定分配给谁,Demo中我们使用一个下拉列表用来显示当前系统的所有用户,以供用户选择.我们每创建一个任务时都要去数据库取一次用户列表,然后绑定到用户 ...

  9. 深入System.Web.Caching命名空间 教你Hold住缓存管理

    一,System .Web.Caching与缓存工作机制简介 System.Web.Caching是用来管理缓存的命名空间,其父级空间是System.Web,由此可见,缓存通常用于Web网站的开发,包 ...

随机推荐

  1. .net微信公众号开发——快速入门

    作者:王先荣 最近在学习微信公众号开发,将学习的成果做成了一个类库,方便重复使用. 现在微信公众号多如牛毛,开发微信的高手可以直接无视这个系列的文章了. 使用该类库的流程及寥寥数行代码得到的结果如下. ...

  2. ★android开发--ListView+Json+异步网络图片加载+滚动翻页的例子(图片能缓存,图片不错乱)

    例子中用于解析Json的Gson请自己Google下载 主Activity: package COM.Example.Main; import java.util.HashMap; import ja ...

  3. 如何在wp8 中调试cocos2dx c++ 代码

    有的时候在win32上运行良好的cocos2dx程序移植到wp8的时候就出了问题,我们想把断点放到c++代码中,需要设置一下VS 2012 右击项目属性 把ui任务 设置为仅限本机 即可.

  4. Normalize.css

    根据之前的一些项目,总结了一下重置CSS: @charset "UTF-8"; html { background: #FFF; font-size: 62.5%; -ms-tex ...

  5. MSIL 教程(三):类和异常处理(转)

    转自:http://www.cnblogs.com/Yahong111/archive/2007/08/16/857771.html 续上文[翻译]MSIL 教程(二):数组.分支.循环.使用不安全代 ...

  6. C#创建windows服务并定时执行

    一.创建window服务 1.新建项目-->选择Windows服务.默认生成文件包括Program.cs,Service1.cs 2.在Service1.cs添加如下代码: System.Tim ...

  7. [LeetCode] 桶排序的特殊解,例 Sort Color

    Sort Colors Given an array with n objects colored red, white or blue, sort them so that objects of t ...

  8. C#高级编程(第8版)

    http://spu.jd.com/11328513.html 第1章 .NET体系结构1.1 C#与.NET的关系1.2 公共语言运行库1.2.1 平台无关性1.2.2 提高性能1.2.3 语言的互 ...

  9. SNF开发平台WinForm之十三-单独从服务器上获取PDF文件进行显示-SNF快速开发平台3.3-Spring.Net.Framework

    1运行效果: 2开发实现: 如果需要单独显示PDF文件时用下面代码去实现,指定url地址. 地址: . 获取附件管理的实体对象: List<KeyValuePair<string, obj ...

  10. Java知多少(下)

    Java知多少(78)Java向量(Vector)及其应用 Java知多少(79)哈希表及其应用 Java知多少(80)图形界面设计基础 Java知多少(81)框架窗口基础 Java知多少(82)标签 ...