我为我正在开发的网站创建了自己的缓存管理器,并且我正在寻找在某些情况下清除缓存的最佳方法。HttpRuntime关闭不会从广告中删除缓存中的项目
我发现很多文章说的正确方法清除缓存是调用HttpRuntime.Close()
然而,在我的单元测试设置我称密封功能HttpRuntime.Close()和缓存不是被清除。
我希望它来执行类似的东西来
foreach (DictionaryEntry cacheItem in HttpRuntime.Cache)
{
HttpRuntime.Cache.Remove(cacheItem.Key.ToString());
}
foreach循环工作在我的包裹作用很大,但关闭()从来没有作品的权利。
我误解了HttpRuntime.Close()的目的,还是有什么更邪恶的在这里?
其实我已经测试了我放在我的问题中的代码,它工作正常。我理解枚举的问题,但由于某些原因,缓存在遍历列表时移除项目似乎没有问题。 – Joseph 2009-04-16 20:37:21
虽然这不是我的问题。我所说的是,如果我在缓存中有4个项目,并且按照我所描述的方式循环访问,那么缓存最终会包含0个项目。但是,当我使用Close()时,这4个项目仍然存在。 – Joseph 2009-04-16 20:38:23
这是因为文档陈述的东西不是完整的真相。Close()并不意味着用于清除缓存。 – Lucero 2009-04-16 20:42:03