Есть ли какой-то тип 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);