RequestCacheLevel Énumération

Définition

Spécifie le comportement de mise en cache pour les ressources obtenues à l'aide de WebRequest et ses classes dérivées.

public enum class RequestCacheLevel
public enum RequestCacheLevel
type RequestCacheLevel = 
Public Enum RequestCacheLevel
Héritage
RequestCacheLevel

Champs

BypassCache 1

Satisfait une demande en utilisant le serveur. Aucune entrée n'est prise à partir des caches, ajoutée aux caches, ni supprimée des caches entre le client et serveur. Il s'agit du comportement de cache par défaut spécifié dans le fichier de configuration machine fourni avec le .NET Framework.

CacheIfAvailable 3

Satisfait une demande de ressource à partir du cache si la ressource est disponible ; sinon, envoie une demande de ressource au serveur. Si l'élément demandé est disponible dans un cache quelconque entre le client et le serveur, la demande peut être satisfaite par le cache intermédiaire.

CacheOnly 2

Satisfait une demande en utilisant la ressource mise en cache localement ; n'envoie pas de demande pour un élément qui n'est pas dans le cache. Lorsque ce niveau de stratégie de cache est spécifié, une exception WebException est levée si l'élément n'est pas dans le cache client.

Default 0

Satisfait une demande de ressource en utilisant la copie mise en cache de la ressource ou en envoyant une demande de ressource au serveur. L'action prise est déterminée par la stratégie de cache actuelle et l'âge du contenu du cache. C'est le niveau de cache qui doit être utilisé par la plupart des applications.

NoCacheNoStore 6

Ne satisfait jamais une demande en utilisant des ressources du cache et ne met pas les ressources en cache. Si la ressource est présente dans le cache local, elle est supprimée. Ce niveau de stratégie indique aux caches intermédiaires qu'ils doivent supprimer la ressource. Dans le protocole de mise en cache HTTP, cette opération est effectuée à l'aide de la directive de contrôle de cache no-cache.

Reload 5

Satisfait une demande en utilisant le serveur. La réponse peut être enregistrée dans le cache. Dans le protocole de mise en cache HTTP, cette opération est effectuée à l'aide de la directive de contrôle de cache no-cache et de l'en-tête Pragma no-cache.

Revalidate 4

Satisfait une demande en utilisant la copie mise en cache de la ressource si l'horodatage est le même que celui de la ressource sur le serveur ; sinon, la ressource est téléchargée à partir du serveur, présentée à l'appelant et stockée dans le cache.

Exemples

L’exemple de code suivant crée une stratégie qui retourne une ressource uniquement si elle se trouve dans le cache.

static WebResponse^ GetResponseFromCache( Uri^ uri )
{
   RequestCachePolicy^ policy = gcnew RequestCachePolicy( RequestCacheLevel::CacheOnly );
   WebRequest^ request = WebRequest::Create( uri );
   request->CachePolicy = policy;
   WebResponse^ response = request->GetResponse();
   Console::WriteLine( L"Policy level is {0}.", policy->Level );
   Console::WriteLine( L"Is the response from the cache? {0}", response->IsFromCache );
   return response;
}
public static WebResponse GetResponseFromCache(Uri uri)
{
     RequestCachePolicy policy =
        new  RequestCachePolicy( RequestCacheLevel.CacheOnly);
    WebRequest request = WebRequest.Create(uri);
    request.CachePolicy = policy;
    WebResponse response = request.GetResponse();
    Console.WriteLine("Policy level is {0}.", policy.Level.ToString());
    Console.WriteLine("Is the response from the cache? {0}", response.IsFromCache);
    return response;
}

Remarques

Les membres de cette énumération sont utilisés pour initialiser des RequestCachePolicy objets. Le paramètre actuel d’un RequestCachePolicy objet est disponible dans la HttpRequestCachePolicy.Level propriété .

Cette BypassCache valeur est le comportement de cache par défaut spécifié dans le fichier de configuration de l’ordinateur fourni avec le .NET Framework. Aucune entrée n'est prise à partir des caches, ajoutée aux caches, ni supprimée des caches entre le client et serveur.

La HttpWebRequest.DefaultCachePolicy propriété est utilisée pour obtenir ou définir la stratégie de cache par défaut pour HttpWebRequest les instances. La WebRequest.CachePolicy propriété est utilisée pour obtenir ou définir la stratégie de cache par défaut pour une WebRequest instance. La WebRequest.CachePolicy propriété est utilisée pour obtenir ou définir la stratégie de cache pour une demande spécifique.

Si le comportement du cache est CacheIfAvailable ou Revalidate, une copie d’une ressource demandée est ajoutée au cache uniquement si le flux de réponse de la ressource est récupéré et lu à la fin du flux. Avec CacheIfAvailable, les demandes suivantes pour la même ressource utiliseraient une copie mise en cache. Avec Revalidate, les requêtes suivantes pour la même ressource utiliseraient une copie mise en cache si l’horodatage de la ressource mise en cache est identique à l’horodatage de la ressource sur le serveur.

Une copie d’une ressource est ajoutée au cache uniquement si le flux de réponse de la ressource est récupéré et lu à la fin du flux. Par conséquent, une autre requête pour la même ressource peut utiliser une copie mise en cache, en fonction du niveau de stratégie de cache par défaut pour cette demande.

S’applique à

Voir aussi