Я пытаюсь добавить элементы в экземпляр MemoryCache.Default, используя метод Add, как показано ниже:
bool result= MemoryCache.Default.Add(cacheKey, dataToCache, cacheItemPolicy)
Значение результата равно true, что указывает на то, что элемент был добавлен в кеш, но когда я попытаюсь получить его сразу после этого, кеш пуст. Я также попытался добавить элемент с помощью метода Set с тем же результатом пустого кеша.
В кеше установлен предел памяти по умолчанию 99 МБ, поэтому он не отображается, если нет места для добавления новых элементов.
Любые идеи?
private static void InsertCachedData(string cacheKey, object dataToCache, string[] dependantCacheKeys)
{
CacheItemPolicy cacheItemPolicy = new CacheItemPolicy();
cacheItemPolicy.AbsoluteExpiration = new DateTimeOffset(DateTime.Now, new TimeSpan(hours: 0, minutes: 0, seconds: 3600));
if (dependantCacheKeys != null && dependantCacheKeys.Length > 0)
{
cacheItemPolicy.ChangeMonitors.Add(MemoryCache.Default.CreateCacheEntryChangeMonitor(dependantCacheKeys));
}
MemoryCache.Default.Add(cacheKey, dataToCache, cacheItemPolicy);
logger.DebugFormat("Cache miss for VehiclesProvider call with key {0}", cacheKey);
}