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