ASP.NET 缓存(8)

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

有3种类型的缓存依赖。

依赖其他缓存项

依赖文件或者文件夹

依赖数据库查询


要创建缓存依赖,你先需要创建一个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);
如果你指定缓存依赖到一个文件夹,那么他会监视到对文件夹里文件的添加,删除,修改。改变子目录,比如重命名,删除,新建子文件夹也会改变缓存依赖。但是改变更深一层的目录,比如子文件夹里创建子文件夹或者文件,不会影响到缓存依赖。

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


还有的构造函数接受一组文件名或者一组缓存的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"]也会自动的被删除。

你可能感兴趣的:(职场,缓存,asp.net,change,休闲)