缓存依赖:
通过缓存依赖,可以在被依赖对象(如文件、目录、数据库表等)与缓存对象之间建立一个有效关联。当被依赖对象发生变化时,缓存对象将变得不可用,并被自动从缓存中移除。
- public partial class CacheDependencyPage : System.Web.UI.Page
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- if (!IsPostBack)
- {
- GetData();
- }
- }
- private void GetData()
- {
- DataTable tableData = new DataTable();
- if (Cache["data"] == null)//用于引用该项的缓存键。如果缓存改变,则true;详情百度c#的Cache对象!
- {
- DataSet ds = new DataSet();
- string filePath = Server.MapPath("~/App_Data/XMLFile.xml");//服务器数据绝对地址
- ds.ReadXml(filePath);//读取文件内的数据,保存在ds里
- tableData = ds.Tables[0];
- CacheDependency cdy = new CacheDependency(filePath,DateTime.Now);
- Cache.Insert("data", tableData, cdy);//通过使用 Insert(重载Insert方法)方法将项添加到缓存中
- //if (cdy.HasChanged)
- //{
- System.Diagnostics.Debug.WriteLine("Xml已变更");
- //}
- }
- else
- {
- tableData = (DataTable)Cache["data"];//通过指定其键和值将项添加到缓存中
- }
- grvCS.DataSource = tableData;
- grvCS.DataBind();
- //DataSet mds = new DataSet();//验证数据绑定用,因为xml层次结构的问题导致了数据绑定失败;
- //mds.ReadXml(Server.MapPath("~/App_Data/XMLFile.xml"));
- //grvCS.DataSource = mds;
- //grvCS.DataBind();
- }
- }