using System.Collections;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Reflection;
|
|
namespace IStation
|
{
|
internal sealed partial class SharedMemoryCache
|
{
|
/// <summary>
|
/// Iterate though all keys
|
/// </summary>
|
/// <returns></returns>
|
public List<string> 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<string>();
|
if (cacheItems == null)
|
return keys;
|
foreach (DictionaryEntry cacheItem in cacheItems)
|
{
|
keys.Add(cacheItem.Key.ToString());
|
}
|
return keys;
|
}
|
|
|
}
|
}
|