欢迎光临

木子屋

标题: Cache.Add的absoluteExpiration和slidingExpiration参数说明

作者: dnawo

日期: 2010-06-08 10:45 AM

分类: Web编程

内容: Cache.Add方法完整签名如下：
复制内容到剪贴板 程序代码public object Add(string key, object value, CacheDependency dependencies, DateTime absoluteExpiration, TimeSpan slidingExpiration, CacheItemPriority priority, CacheItemRemovedCallback onRemoveCallback)
对于absoluteExpiration和slidingExpiration两个参数，msdn说明如下：
引用内容absoluteExpiration
类型：System.DateTime
所添加对象将过期并被从缓存中移除的时间。如果使用可调过期，则 absoluteExpiration 参数必须为 NoAbsoluteExpiration。
slidingExpiration
类型：System.TimeSpan
最后一次访问所添加对象时与该对象过期时之间的时间间隔。如果该值等效于 20 分钟，则对象在最后一次被访问 20 分钟之后将过期并从缓存中移除。如果使用绝对过期，则 slidingExpiration 参数必须为 NoSlidingExpiration。
其实msdn说得已经很明白了，但在开始一直没理解，导致程序老报错说"最匹配的重载方法具有一些无效参数"，下边再说明下：
·absoluteExpiration：用于设置绝对过期时间，它表示只要时间一到就过期，所以类型为System.DateTime，当给这个参数设置了一个时间时，slidingExpiration参数的值就只能为Cache.NoSlidingExpiration，否则出错；
·slidingExpiration：用于设置可调过期时间，它表示当离最后访问超过某个时间段后就过期，所以类型为System.TimeSpan，当给这个参数设置了一个时间段时，absoluteExpiration的值就只能为Cache.NoAbsoluteExpiration，否则出错；
当然，也允许这两个参数都不设置值，那么absoluteExpiration值为Cache.NoAbsoluteExpiration，slidingExpiration值为Cache.NoSlidingExpiration也是可以的，比如缓存依赖于某个文件时，这就非常有用。
最后再给两个示例：
复制内容到剪贴板 程序代码Cache.Add("time", DateTime.Now.ToString(), null, DateTime.Now.AddSeconds(10), Cache.NoSlidingExpiration, CacheItemPriority.Normal, null);
Cache.Add("time", DateTime.Now.ToString(), null, Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(10), CacheItemPriority.Normal, null);

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.133 ms

返回

标题: Cache.Add的absoluteExpiration和slidingExpiration参数说明

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.133 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.203 ms

返回