5

我想我知道这个问题的答案,但我在文档或文章的任何地方都找不到明确的“是”或“否”。

使用 .Net 3.5 ASP.Net 缓存,如果您使 CacheDependency 传递一个 string[] 的 cacheKeys,如果它们不存在,是否将这些传递的 cacheKeys 插入到使用依赖项的 Insert 上的缓存中?

CacheDependency dependency = 
    new CacheDependency(null, new string[] { "abc", "def", "ghi"});
HttpRuntime.Cache.Insert("123", "xxx", dependency);

因此,当缓存项“123”被插入时,如果缓存中还没有键为“def”的项怎么办?然后它会被创建吗?

如果没有,有没有办法获取那个 CacheDependency 对象,并找出它是用什么键创建的,这样我就可以遍历它们并根据需要添加每个键?

基本上,我试图允许将 CacheDependency 对象传递到我的自定义 CacheManager 对象方法中以获取依赖关系,而不是我现在需要的 string[] 数组。感谢您的任何帮助,您可以提供。

4

1 回答 1

5

答案是不。尚未在缓存中的 cacheDependency 的 cacheKey 不会在使用依赖项的项的 Insert 上插入缓存。

事实上,带有依赖项的实际插入项甚至没有进入缓存,因为它的依赖项在缓存中不存在。

于 2010-11-29T16:11:56.283 回答