有時候,數據源可能會對其餘動做作出反應。可是,若是你的代碼使用了緩存,你可能仍然沒有意識到數據源的改變,仍然使用的緩存中過時的信息。爲了解決這個問題,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