Я немного озадачен возможными зависимостями кэша в asp.net, и я не уверен, как их использовать.
Я хотел бы добавить элементы в HttpRuntime.Cache таким образом, чтобы эти элементы стали недействительными, если я изменю другие элементы в кэше. Зависимости должны быть определены ключом.
Я хочу такую функцию:
public MyObject LoadFromCache(string itemDescriptor, IEnumerable<string> dependencies)
{
var ret = HttpRuntime.Cache[itemDescriptor] as MyObject;
if (ret == null)
{
ret = LoadFromDataBase(itemDescriptor);
//this is the part I'm not able to figure out. Adding more than one dependency items.
var dep = new CacheDependency();
dependencies.ForEach(o => dep.SomeHowAdd(o));
HttpRuntime.Cache.Add(
itemDescriptor,
ret,
dependencies,
System.Web.Caching.Cache.NoAbsoluteExpiration,
System.Web.Caching.Cache.NoSlidingExpiration,
Caching.CacheItemPriority.Normal,
null
);
}
return ret;
}
Помоги мне в этом.