如何检索 .NET Core 中的内存缓存键列表?

问题描述 投票:0回答:2

如何在 .NET Core Web 应用程序中列出内存缓存中的所有寄存器密钥?

caching .net-core memory
2个回答
1
投票

我发现了。我分享它来帮助你。

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);
        }

0
投票

最新版本的 Microsoft.Extensions.Caching.Memory (9.0.0*) 添加了新的 Keys 属性,可以将所有键开箱即用,无需任何反射。

© www.soinside.com 2019 - 2024. All rights reserved.