获取使用 MemoryCache class c# 缓存的所有缓存对象
Get all Cached Objects which are cached using MemoryCache class c#
我想检索使用 MemoryCache 添加的所有缓存对象。
我尝试了以下方法,但没有检索到它们
System.Web.HttpContext.Current.Cache.GetEnumerator();
System.Web.HttpRuntime.Cache.GetEnumerator();
注意: 检索所有不仅意味着我知道和创建的内容,我的意思是在应用程序中创建的每个缓存对象。
这是我找到的(可能对某些人有帮助)
foreach (var item in MemoryCache.Default)
{
//add the item.keys to list
}
return list;
这里有一个更好的枚举和获取结果的方法:
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;
}
这也应该有效:MemoryCache.Default.ToList();
我想检索使用 MemoryCache 添加的所有缓存对象。
我尝试了以下方法,但没有检索到它们
System.Web.HttpContext.Current.Cache.GetEnumerator();
System.Web.HttpRuntime.Cache.GetEnumerator();
注意: 检索所有不仅意味着我知道和创建的内容,我的意思是在应用程序中创建的每个缓存对象。
这是我找到的(可能对某些人有帮助)
foreach (var item in MemoryCache.Default)
{
//add the item.keys to list
}
return list;
这里有一个更好的枚举和获取结果的方法:
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;
}
这也应该有效:MemoryCache.Default.ToList();