Les méthodes ci-dessus conviennent si vous savez pour quelles pages vous voulez vider le cache. Dans mon cas (ASP.NET MVC), je faisais référence aux mêmes données partout. Par conséquent, lorsque je faisais une [sauvegarde], je voulais vider le cache de tout le site. Voici ce qui a fonctionné pour moi : http://aspalliance.com/668
Cela se fait dans le contexte d'un filtre OnActionExecuting. Cela pourrait tout aussi bien être fait en surchargeant OnActionExecuting dans un BaseController ou autre.
HttpContextBase httpContext = filterContext.HttpContext;
httpContext.Response.AddCacheItemDependency("Pages");
Mise en place :
protected void Application_Start()
{
HttpRuntime.Cache.Insert("Pages", DateTime.Now);
}
Tweak mineur : J'ai un helper qui ajoute des "messages flash" (messages d'erreur, messages de succès - "Cet élément a été sauvegardé avec succès", etc). Afin d'éviter que le message flash ne s'affiche à chaque GET ultérieur, j'ai dû invalider après avoir écrit le message flash.
Nettoyage du cache :
HttpRuntime.Cache.Insert("Pages", DateTime.Now);
J'espère que cela vous aidera.