替换缓存中的不可变项而不触发删除回调

本文关键字:删除 回调 缓存 不可变 替换 | 更新日期: 2023-09-27 18:36:08

好的,所以说每次用户点击我的 Web 服务时,我都会向缓存添加一个项目:

DateTime? token = HttpContext.Current.Get(TimeoutKey) as DateTime?;
int hashkey = (email + password).GetHashCode();
if (token == null)
{
    HttpContext.Current.Cache.Add(
         hashkey.ToString(),
         DateTime.Now,
         null,
         Cache.NoAbsoluteExpiration,
         new TimeSpan(0, 20, 0),
         CacheItemPriority.NotRemoveable,
         UserTimedOut);
}
else
{
    // How to do this without triggering UserTimedOut?
    Cache[hashkey.ToString()] = DateTime.Now;
}

替换缓存中的不可变项而不触发删除回调

你能在DateTime周围创建一个可变的自定义类包装器,比如UserStateInfo