Cache.Insert("a","WindowsAndLinux",new CacheDependency(Server.MapPath("CacheFile.txt")));我是这么想的,用文件的依赖项,如这里的CacheFile.txt但我改变CacgeFile.txt后,该缓存依然存在,不是说改变依赖项缓存也就消息了吗?请高手答!谢谢!

解决方案 »

  1.   

    文件改变后,Cache["a"]会自动清除,你需要判断Cache["a"]是否存在,如果存在,那么说明依赖文件没有改变,那么就用缓存数据,如果Cache["a"]不存在,说明依赖文件改变了,这时你需要重新获取新数据并建立依赖项
      

  2.   

    可是我改变了依赖项文件了,可是该缓存还是存在啊,不知道为什么啊?能否帮我看看
    private void LookFor_Click(object sender, System.EventArgs e)    //查看该缓存
    {
    if(Cache["a"]!=null)
    {
    Response.Write(Cache["a"]);
    }
    else
    {
    Response.Write("该缓存不存在!");
    }
    } private void CreateCache_Click(object sender, System.EventArgs e)    //创建缓存
    {
    if(Cache["a"]==null)
    {
    Cache.Insert("a","WindowsAndLinux",new CacheDependency(Server.MapPath("CacheFile.txt")));
    }
    else
    {
    Response.Write("该缓存已经存在!<br>");
    }
    } private void ChangeCache_Click(object sender, System.EventArgs e)    //改变依赖项
    {
    Data.ChangeCacheFile();
    }以下是Data的ChangeChaheFile()public static void ChangeCacheFile()
    {
    string path=HttpContext.Current.Server.MapPath("CatchFile.txt");
    StreamWriter w;
    if(File.Exists(path))
    {
    w=File.AppendText(path);
    w.WriteLine("Next");
    }
    else
    {
    w=File.CreateText(path);
    w.WriteLine("Next");
    }
    //改变文件,也就是改变了依赖项
    w.Close();
    }
      

  3.   

    http://www.cnblogs.com/goodspeed/articles/4518.html