我希望能够确定HttpRuntime缓存中项目的年龄,并且想知道是否有任何方法可以执行此操作。基本上我在我的类中将第三方XML文件解析为对象,然后将对象存储在缓存中。但是,不是在缓存中的对象上设置过期,而是在需要刷新对象时尝试拉出更新的XML,以便在解析器失败时保留我的缓存对象。如果有人知道如何以不同/更好的方式实现这一点,我也会接受想法。
答案 0 :(得分: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; }
}
答案 1 :(得分:1)
根据您的说明,您应该看看CacheItemUpdateCallback
代表。
如果您使用此功能,则可以在从缓存中删除项目之前通知您。
因此,您可以尝试从更新的XML重新生成对象,如果解析失败,请重新插入原始对象。