获取使用MemoryCache类c#缓存的所有缓存对象

You*_*wMe 6 .net c# asp.net asp.net-mvc memorycache

我想检索使用MemoryCache添加的所有缓存对象.

我尝试了以下但它没有检索它们

System.Web.HttpContext.Current.Cache.GetEnumerator(); System.Web.HttpRuntime.Cache.GetEnumerator();

注意:Retreive all不仅仅意味着我所知道和创建的,我的意思是在应用程序中创建的每个缓存对象.

You*_*wMe 16

这是我发现的(它可能对某些人有帮助)

foreach (var item in MemoryCache.Default)
{
   //add the item.keys to list
}
return list;
Run Code Online (Sandbox Code Playgroud)


小智 5

这是枚举并获得结果的更好方法:

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;
}
Run Code Online (Sandbox Code Playgroud)


dat*_*ung 5

这也应该有效: MemoryCache.Default.ToList();