获取使用 MemoryCache 类 c# 缓存的所有缓存对象
Posted
技术标签:
【中文标题】获取使用 MemoryCache 类 c# 缓存的所有缓存对象【英文标题】:Get all Cached Objects which are cached using MemoryCache class c# 【发布时间】:2015-09-03 03:41:04 【问题描述】:我想检索使用 MemoryCache 添加的所有缓存对象。
我尝试了以下方法,但没有检索到它们
System.Web.HttpContext.Current.Cache.GetEnumerator();
System.Web.HttpRuntime.Cache.GetEnumerator();
注意: 检索所有内容不仅仅是我知道和创建的,我指的是在应用程序中创建的每个缓存对象。
【问题讨论】:
我对你最近的编辑有点困惑。如果这回答了问题,那么这确实应该作为答案添加,而不是编辑到问题中。我很欣赏 rene 告诉您将其编辑到问题中,但我怀疑他没有意识到这是一个答案。很抱歉,您收到的信息不一! :) 【参考方案1】:这是我发现的(它可能对某些人有所帮助)
foreach (var item in MemoryCache.Default)
//add the item.keys to list
return list;
【讨论】:
【参考方案2】:这里有一个更好的枚举和获取结果的方法:
public virtual List<T> GetCache<T>()
List<T> list = new List<T>();
IDictionaryEnumerator cacheEnumerator = (IDictionaryEnumerator)((IEnumerable)Cache).GetEnumerator();
while (cacheEnumerator.MoveNext())
list.Add((T) cacheEnumerator.Value);
return list;
【讨论】:
【参考方案3】:这也应该有效:MemoryCache.Default.ToList();
【讨论】:
以上是关于获取使用 MemoryCache 类 c# 缓存的所有缓存对象的主要内容,如果未能解决你的问题,请参考以下文章