如何检索.net核心中的内存缓存键列表?

问题描述

如何列出.Net Core 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);
        }