Найдите все методы действий, которые были украшены [OutputCache], и ​​удалите - PullRequest
1 голос
/ 10 мая 2011

Можно ли найти все методы Action на всех контроллерах, которые были отмечены [OutputCache], чтобы я мог затем перечислить их, чтобы удалить selected элементов из кэша за один раз?

foreach(var .. in ...)
{
  //get ActionName
  //get ControllerName
  HttpResponse.RemoveOutputCacheItem(Url.Action(ActionName, ControllerName));
}

Согласно этому сообщению невозможно аннулировать кэш за один раз.

Редактировать Похоже, я могу сделать недействительным ALL кеш, просто сделав это: -

public ActionResult Invalidate()
{
    OutputCacheAttribute.ChildActionCache = new MemoryCache("NewDefault");
    return View();
}

См. сообщение для получения дополнительной информации. Однако было бы неплохо аннулировать части кэша в зависимости, скажем, от имени контроллера и т. Д.

1 Ответ

1 голос
/ 11 мая 2011

Похоже,

public ActionResult Invalidate()
{
    OutputCacheAttribute.ChildActionCache = new MemoryCache("NewDefault");
    return View();
}

добился цели ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...