Значение истечения срока действия кэша памяти .NET

#c# #.net #caching #model-view-controller #memorycache

#c# #.net #кэширование #модель-представление-контроллер #кэш памяти

Вопрос:

Я пытаюсь кэшировать некоторые значения, и моя цель — сохранить их до тех пор, пока они не будут перезаписаны. Таким образом, в принципе, они никогда не должны истекать.

 var memoryCache = MemoryCache.Defau<

if (!memoryCache.Contains("data"))
{
    var timer = DateTimeOffset.UtcNow.AddMinutes(1);
    var data = jsonContent;

    memoryCache.Add("data", data, timer);
}
  

Как я могу обойти параметр истечения срока действия? Я что-то читал о CacheItemPolicy , но я этого не понял.

Заранее спасибо за любую помощь.

Ответ №1:

Глядя на документацию, кажется, что вы можете установить для SlidingExpiration свойства CacheItemPolicy объекта значение NoSlidingExpiration , которое, по-видимому, указывает на то, что срок его действия не истечет, смотрите здесь

Запись кэша, которая вставлена в кэш со значением поля NoSlidingExpiration, установленным в качестве значения истечения срока действия, никогда не должна удаляться из-за отсутствия активности в скользящем временном окне.

Итак, вы можете сделать что-то вроде следующего:

 memoryCache.Add(new CacheItem("data", data), new CacheItemPolicy
{
    SlidingExpiration = System.Runtime.Caching.NoSlidingExpiration
});
  

Пожалуйста, обратите внимание, что приведенный выше код может не компилироваться, это просто пример того, как его использовать.