我想我知道答案,但我无法在文档或文章中找到明确的是或否。
使用.Net 3.5 ASP.Net缓存,如果你让CacheDependency传递一个cacheKeys的字符串[],那么传递的cacheKeys会被插入到使用依赖关系的Insert的缓存中,如果它们还不存在的话?
CacheDependency dependency =
new CacheDependency(null, new string[] { "abc", "def", "ghi"});
HttpRuntime.Cache.Insert("123", "xxx", dependency);
因此,当缓存项目“123”被插入时,如果缓存中没有一个带有“def”键的项目怎么办?它会被创建吗?
如果没有,有没有办法接受那个CacheDependency对象,并找出它创建的密钥,那么我可以循环遍历它们并根据需要添加它们?
基本上,我尝试允许将CacheDependency对象传递到我的自定义CacheManager对象方法中,而不是我现在需要的字符串[]数组。感谢您提供的任何帮助。
答案 0 :(得分:5)
答案是否定的。缓存中尚未存在的cacheDependency的cacheKeys不会插入到使用依赖项的项目的Insert中的缓存中。
实际上,使用依赖项插入的实际项目甚至没有进入缓存,因为缓存中不存在依赖项。