Search code examples
c#asp.net-mvccachingasp.net-core

How to retrieve a list of Memory Cache keys in asp.net core?


To be succinct. Is possible list all register keys from Memory Cache in the .Net Core Web Application?

I didn't find anything in IMemoryCache interface.


Solution

  • There is no such thing in .Net Core yet. Here is my workaround:

     var field = typeof(MemoryCache).GetProperty("EntriesCollection", BindingFlags.NonPublic | BindingFlags.Instance);
     var collection = field.GetValue(_memoryCache) as ICollection;
     var items = new List<string>();
     if (collection != null)
     foreach (var item in collection)
     {
          var methodInfo = item.GetType().GetProperty("Key");
          var val = methodInfo.GetValue(item);
          items.Add(val.ToString());
     }