【问题标题】:Get all Cached Objects which are cached using MemoryCache class c#获取使用 MemoryCache 类 c# 缓存的所有缓存对象
【发布时间】:2015-09-03 03:41:04
【问题描述】:

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

我尝试了以下方法,但没有检索到它们

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

注意: 检索所有内容不仅仅是我知道和创建的,我指的是在应用程序中创建的每个缓存对象。

【问题讨论】:

  • 我对你最近的编辑有点困惑。如果这回答了问题,那么这确实应该作为答案添加,而不是编辑到问题中。我很欣赏 rene 告诉您将其编辑到问题中,但我怀疑他没有意识到这是一个答案。很抱歉,您收到的信息不一! :)

标签: c# asp.net .net asp.net-mvc memorycache


【解决方案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();

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-06-12
        • 1970-01-01
        • 2018-05-27
        • 2010-10-09
        • 1970-01-01
        • 1970-01-01
        • 2016-03-29
        • 2018-05-25
        相关资源
        最近更新 更多