缓存中两个项之间的缓存依赖性

时间:2013-08-05 07:36:05

标签: asp.net .net caching

我在缓存中有两个项目。我的要求是使缓存中的一个项目依赖于同一缓存中的另一个项目。

Cache["UserName"] = "Test User";
Cache["Message"] = "Test Message";

Cache["UserName"]更改或从缓存中删除时,Cache["Message"]应自动删除/失效。

使用DateTime不是我的要求,也不是任何文件。

2 个答案:

答案 0 :(得分:1)

试试这个

Cache["UserName"] = "Test User";

// Make Cache["Message"] dependent on Cache["UserName"].
string[] dependencyKey = new string[1];
dependencyKey[0] = "UserName";

CacheDependency dependency = new CacheDependency(null, dependencyKey);
Cache.Insert("Message", "Test Message", dependency);

答案 1 :(得分:1)

您可以将缓存keys作为参数,默认情况下在Asp.Net中受支持。阅读本文以获取更多信息:

http://msdn.microsoft.com/en-us/library/system.web.caching.cachedependency.aspx

或特别是这个:

http://msdn.microsoft.com/en-us/library/818kahch.aspx

提供文件名不是强制性的。缓存键只是开箱即用。

Cache["key1"] = "Value 1";

// Make key2 dependent on key1.
String[] dependencyKey = new String[1];
dependencyKey[0] = "key1";
CacheDependency dependency = new CacheDependency(null, dependencyKey);

Cache.Insert("key2", "Value 2", dependency);