Кэширование в ASP.NET выглядит так, как будто оно использует какой-то ассоциативный массив:
// Insert some data into the cache:
Cache.Insert("TestCache", someValue);
// Retrieve the data like normal:
someValue = Cache.Get("TestCache");
// But, can be done associatively ...
someValue = Cache["TestCache"];
// Also, null checks can be performed to see if cache exists yet:
if(Cache["TestCache"] == null) {
Cache.Insert(PerformComplicatedFunctionThatNeedsCaching());
}
someValue = Cache["TestCache"];
Как видите, проверка объекта кэша на null очень полезна.
Но я хотел бы реализовать функцию очистки кеша, которая может очищать значения кеша. где я не знаю полное имя ключа . Как кажется, ассоциативный массив здесь, это должно быть возможно (?)
Кто-нибудь может помочь мне разработать способ перебора сохраненных ключей кеша и выполняя на них простую логику? Вот что мне нужно:
static void DeleteMatchingCacheKey(string keyName) {
// This foreach implementation doesn't work by the way ...
foreach(Cache as c) {
if(c.Key.Contains(keyName)) {
Cache.Remove(c);
}
}
}