Je suis un peu confus au sujet de la granularité offerte par l'appel HttpResponse.RemoveOutputCacheItem()
. Je suis intéressé à effectuer une mise en cache de sortie sur des images générées dynamiquement, et je voudrais faire varier le cache de sortie en utilisant au moins les paramètres (appelons-les 'id' et 'size' pour l'amour de l'argument).Invalider des portions du cache de sortie mvc asp.net - avec des niveaux de granularité variables
Ainsi, par exemple:
/Image/User?id=1 /Image/User?id=1&size=1 /Image/User?id=1&size=2
serait-elle mises en cache séparement.
Lorsqu'un utilisateur donné change d'image; Je voudrais invalider tous les éléments de cache de sortie pour cet ID utilisateur (indépendamment de la taille). This question répond à ma question sur un seul paramètre particulier. Mais ... comment est-ce que j'irais vider toutes les réponses en cache pour un utilisateur sans tenir compte de la taille param? (Supposons que je ne connaîtrais pas toutes les valeurs possibles de 'taille' à l'avance).
Je voudrais idéalement faire quelque chose comme:
HttpResponse.RemoveOutputCacheItem("/Image/User?id=1&size=*"); //wishful thinking
Quelqu'un peut-il me diriger dans la bonne direction?
Modifier
@JcMalta ont proposé une solution prometteuse, mais je ne peux pas trouver une collection appropriée qui est exposée pour les éléments du cache de sortie. Une solution viable pourrait inclure une opération similaire à celle qu'il proposait si cela existait quelque part.
Merci pour la réponse; HttpResponse.AddCacheItemDependency semblerait être une bonne option pour moi. – DanP