CacheDependency问题疑惑
代码中注释的地方很疑惑。请懂的人出来给我讲解一下。谢谢~~
代码是写在Global.asax文件里的
===========================================================
private DataTable GetBadLinks()
{
DataSet dstBadLinks;
DataTable dtblBadLinks;
dtblBadLinks = (DataTable)Context.Cache["badlink"];
if (dtblBadLinks == null)
{
dstBadLinks = new DataSet();
dstBadLinks.ReadXml(Server.MapPath("./xml/BadLinks.xml"));
dtblBadLinks = dstBadLinks.Tables[0];
//下面这两句经过测试感觉上和没什么区别
//Context.Cache.Insert("badlinks", dtblBadLinks, new CacheDependency(Server.MapPath("./xml/BadLinks.xml")));
Context.Cache["badlinks"] = dtblBadLinks;
}
return dtblBadLinks;
}
===========================================================
根据资料说明使用
Context.Cache.Insert("badlinks", dtblBadLinks, new CacheDependency(Server.MapPath("./xml/BadLinks.xml")));
是在BadLinks.xml文件被修改时,自动更新缓存。
但是我用下面这句也一样,
Context.Cache["badlinks"] = dtblBadLinks;
一修改BadLinks.xml然后刷新浏览器,结果也跟着变了。感觉上也是一修改BadLinks.xml文件就自动更新缓存似的。
搞得我很疑惑两句之间到底有什么区别???~
--------------------编程问答-------------------- 你在Cache.Insert的时候设置一个时间,看有没有变化 --------------------编程问答-------------------- dtblBadLinks = (DataTable)Context.Cache["badlink"];
前面一句是"badlink",少个s,总是null,因为你后来没有设置值 --------------------编程问答-------------------- 呵呵,钻钻的眼神就是好啊 --------------------编程问答-------------------- 晕啊,除了少打的错误。
谢谢思归啦
补充:.NET技术 , ASP.NET