using System.Collections; using System.Collections.Generic; using System.Linq; using System.Reflection; namespace IStation { internal sealed partial class SharedMemoryCache { /// /// Iterate though all keys /// /// public List GetKeys() { const BindingFlags flags = BindingFlags.Instance | BindingFlags.NonPublic; var entries = _memoryCache.GetType().GetField("_entries", flags).GetValue(_memoryCache); var cacheItems = entries as IDictionary; var keys = new List(); if (cacheItems == null) return keys; foreach (DictionaryEntry cacheItem in cacheItems) { keys.Add(cacheItem.Key.ToString()); } return keys; } } }