Caching 如何在.NETCore中检索内存缓存键列表?

Caching 如何在.NETCore中检索内存缓存键列表?,caching,.net-core,memory,Caching,.net Core,Memory,如何在.NET核心web应用程序中列出内存缓存中的所有注册密钥?我找到了。我分享它是为了帮助你 var cacheEntriesCollectionDefinition = typeof(MemoryCache).GetProperty("EntriesCollection", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); var cac

如何在.NET核心web应用程序中列出内存缓存中的所有注册密钥?

我找到了。我分享它是为了帮助你

var cacheEntriesCollectionDefinition = typeof(MemoryCache).GetProperty("EntriesCollection", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
        var cacheEntriesCollection = cacheEntriesCollectionDefinition.GetValue(_cache) as dynamic;
        List<ICacheEntry> cacheCollectionValues = new List<ICacheEntry>();

        foreach (var cacheItem in cacheEntriesCollection)
        {
            ICacheEntry cacheItemValue = cacheItem.GetType().GetProperty("Value").GetValue(cacheItem, null);
            cacheCollectionValues.Add(cacheItemValue);
        }
var cacheEntriesCollectionDefinition=typeof(MemoryCache).GetProperty(“EntriesCollection”,System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
var cacheEntriesCollection=cacheEntriesCollectionDefinition.GetValue(_cache)为动态;
List cacheCollectionValues=新列表();
foreach(cacheEntriesCollection中的var cacheItem)
{
ICacheEntry cacheItemValue=cacheItem.GetType().GetProperty(“值”).GetValue(cacheItem,null);
cacheCollectionValues.Add(cacheItemValue);
}

只是
foreach
?它有一个
GetEnumerator()
(这是
foreach
使用的):(但请参见标记为“重要”的注释)