ASP.NET 缓存(8)

有时候,数据源可能会对其余动做作出反应。可是,若是你的代码使用了缓存,你可能仍然没有意识到数据源的改变,仍然使用的缓存中过时的信息。为了解决这个问题,ASP.NET支持缓存依赖。缓存依赖容许你建立的缓存项依赖于其余资源,这样当资源改变,缓存项会被自动删除。数据库

有3种类型的缓存依赖。缓存

依赖其余缓存项ide

依赖文件或者文件夹函数

依赖数据库查询this


要建立缓存依赖,你先须要建立一个CacheDependency对象,而后在插入依赖缓存项的时候使用它。下面的例子演示了,建立一个缓存项,而后当XML文件改变删除或者覆盖的时候,该缓存项会自动的清除。
// Create a dependency for the ProductList.xml file.
CacheDependency prodDependency = new CacheDependency(
Server.MapPath("ProductList.xml"));
// Add a cache item that will be dependent on this file.
Cache.Insert("ProductInfo", prodInfo, prodDependency);
若是你指定缓存依赖到一个文件夹,那么他会监视到对文件夹里文件的添加,删除,修改。改变子目录,好比重命名,删除,新建子文件夹也会改变缓存依赖。可是改变动深一层的目录,好比子文件夹里建立子文件夹或者文件,不会影响到缓存依赖。spa

缓存依赖是在他被建立的时候就开始监视的,你也能够使用重载的构造函数来指定一个特定的时间开始监视。xml


还有的构造函数接受一组文件名或者一组缓存的key,看下面的例子,使用构造函数建立一个依赖于其余缓存的缓存依赖。对象

Cache["Key1"] = "Cache Item 1";
// Make Cache["Key2"] dependent on Cache["Key1"].
string[] dependencyKey = new string[1];
dependencyKey[0] = "Key1";
CacheDependency dependency = new CacheDependency(null, dependencyKey);
Cache.Insert("Key2", "Cache Item 2", dependency);
 资源

接下来,当Cache["Key 1"] 改变或者被删除,Cache["Key 2"]也会自动的被删除。string

相关文章
相关标签/搜索