2010-04-20 9 views
4

Est-il possible de détecter si une page ASP.NET est sur le point d'être mise en cache et si oui, comment?Comment détecter (avec le code côté serveur) si une page ASP.NET est sur le point d'être mise en cache (la première fois qu'elle est demandée)?

L'objet HttpCachePolicy fournit uniquement des méthodes set. La collection nom-valeur VaryByParams est inutile si les valeurs autres que "Aucun" et "*" sont définies comme impossibles à énumérer et que vous ne pouvez y accéder que par clé.

De plus, je ne peux pas utiliser Reflection.

Des idées?

Répondre

1

Une approche qui pourrait fonctionner si vous utilisez ASP.NET 4.0 serait d'implémenter votre propre OutputCacheProvider personnalisé. Vous pouvez ensuite ajouter votre logique de détection dans le fournisseur. Voir le MSDN ASP.NET Caching Overview pour des exemples d'ajout du fournisseur à votre web.config et de l'utilisation de l'attribut providerName dans votre directive @Page ou @Control.

+0

Nous vous remercions de votre réponse. Malheureusement, j'ai besoin d'une solution 2.0+. Ma recherche actuelle ne montre aucun moyen de faire cela - ASP.NET ferme effectivement toutes les portes au cache 'privé' (où il met en cache des choses) et on ne peut même pas lire une seule propriété donnant des informations sur le cache ou si la page est sur le point d'être mis en cache ou non. – simich