Есть ли какой-то тип CacheDependency в System.Runtime.Caching?

Я слышал, что в.NET 4 появился новый API кеширования.

Хорошо, так что старый добрый System.Web.Caching.Cache (который, кстати, до сих пор существует в.NET 4) имеет возможность устанавливать так называемые CacheDependency объекты, чтобы определить, истек ли срок хранения кэшированного элемента.

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

Мне любопытно, есть ли способ обеспечить такую ​​логику в новом API?

2 ответа

Решение

Я еще не использовал его, но классы, производные от класса ChangeMonitor, похоже, служат для аналогичной цели.

С использованием System.Web.Caching.Cacheс CacheDependencyбыло построено примерно следующее:

      CacheDependency cacheDependency = new System.Web.Caching.CacheDependency(null, new string[] { "dependentOnThisKey" });
cacheInstance.Add("someCacheKey", new object(), cacheDependency);

С System.Runtime.Cachingэто переходит в CacheItemPolicy ИзменитьМониторы . Приведенный выше пример изменяется на следующее:

      CacheItemPolicy policy = new CacheItemPolicy();
policy.ChangeMonitors.Add(MemoryCache.Default.CreateCacheEntryChangeMonitor(new List<string> { "dependentOnThisKey" }));
cacheInstance.Add("someCacheKey", new object(), policy);
Другие вопросы по тегам