我希望能够确定 HttpRuntime 缓存中项目的年龄,并且想知道是否有任何方法可以做到这一点。基本上我在课堂上的是将第三方 XML 文件解析为一个对象,然后将该对象存储在缓存中。不过,与其在缓存中的对象上设置过期时间,不如在需要刷新对象时尝试提取更新的 XML,以便在解析器失败时保留缓存的对象。如果有人知道如何以不同/更好的方式完成此任务,我也愿意接受。
问问题
671 次
2 回答
2
您可以创建一个与带有“_Date”或其他后缀的对象键相对应的键
public object MyProperty
{
get { return HttpContext.Cache["MyKey"] as object; }
set
{
HttpContext.Cache["MyKey"] = value;
MyPropertyDate = DateTime.Now;
}
}
public DateTime MyPropertyDate
{
get { return HttpContext.Cache["MyKey_Date"] as DateTime; }
set { HttpContext.Cache["MyKey_Date"] = value; }
}
于 2010-11-05T19:01:37.083 回答
1
根据您的描述,听起来您应该看看CacheItemUpdateCallback
代表。
如果您使用它,您可以在您的项目从缓存中删除之前收到通知。
因此,您可以尝试从更新的 XML 中重新生成对象,如果解析失败,请重新插入原始对象。
于 2010-11-05T21:53:49.097 回答