Значение срока действия MemoryCache .NET - PullRequest
0 голосов
/ 22 марта 2019

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

var memoryCache = MemoryCache.Default;

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

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

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

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

1 Ответ

1 голос
/ 22 марта 2019

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

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

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

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

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

...