【发布时间】:2020-12-05 16:02:22
【问题描述】:
如何在 .NET Core Web 应用程序中列出内存缓存中的所有注册键?
【问题讨论】:
-
只是
foreach?它有一个GetEnumerator()(这是foreach使用的):docs.microsoft.com/en-us/dotnet/api/…(但请参阅标记为“重要”的注释)
如何在 .NET Core Web 应用程序中列出内存缓存中的所有注册键?
【问题讨论】:
foreach?它有一个GetEnumerator()(这是foreach 使用的):docs.microsoft.com/en-us/dotnet/api/…(但请参阅标记为“重要”的注释)
我找到了。我分享它来帮助你。
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);
}
【讨论】: