Compartir por


RequestCacheLevel Enumeración

Definición

Especifica el comportamiento de almacenamiento en caché de los recursos obtenidos mediante WebRequest y sus clases derivadas.

public enum class RequestCacheLevel
public enum RequestCacheLevel
type RequestCacheLevel = 
Public Enum RequestCacheLevel
Herencia
RequestCacheLevel

Campos

Nombre Valor Description
Default 0

Satisface una solicitud de un recurso mediante la copia almacenada en caché del recurso o enviando una solicitud para el recurso al servidor. La directiva de caché actual determina la acción realizada y la antigüedad del contenido en la memoria caché. Este es el nivel de caché que la mayoría de las aplicaciones deben usar.

BypassCache 1

Satisface una solicitud mediante el servidor. No se toman entradas de las memorias caché, se agregan a las memorias caché ni se quitan de las memorias caché entre el cliente y el servidor. Este es el comportamiento de caché predeterminado especificado en el archivo de configuración de la máquina que se incluye con .NET Framework.

CacheOnly 2

Satisface una solicitud mediante el recurso almacenado en caché local; no envía una solicitud de un elemento que no está en la memoria caché. Cuando se especifica este nivel de directiva de caché, se produce una WebException excepción si el elemento no está en la memoria caché del cliente.

CacheIfAvailable 3

Satisface una solicitud de un recurso de la memoria caché, si el recurso está disponible; De lo contrario, envía una solicitud de un recurso al servidor. Si el elemento solicitado está disponible en cualquier caché entre el cliente y el servidor, la solicitud podría satisfacerse mediante la caché intermedia.

Revalidate 4

Satisface una solicitud mediante la copia almacenada en caché del recurso si la marca de tiempo es la misma que la marca de tiempo del recurso en el servidor; De lo contrario, el recurso se descarga del servidor, se presenta al autor de la llamada y se almacena en la memoria caché.

Reload 5

Satisface una solicitud mediante el servidor. Es posible que la respuesta se guarde en la memoria caché. En el protocolo de almacenamiento en caché HTTP, esto se logra mediante la no-cache directiva de control de caché y el encabezado sin caché Pragma .

NoCacheNoStore 6

Nunca satisface una solicitud mediante el uso de recursos de la memoria caché y no almacena en caché los recursos. Si el recurso está presente en la memoria caché local, se quita. Este nivel de directiva indica a las memorias caché intermedias que deben quitar el recurso. En el protocolo de almacenamiento en caché HTTP, esto se logra mediante la no-cache directiva de control de caché.

Ejemplos

En el ejemplo de código siguiente se crea una directiva que devuelve un recurso solo si está en la memoria caché.

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;
}

Comentarios

Los miembros de esta enumeración se usan para inicializar RequestCachePolicy objetos. El valor actual de un RequestCachePolicy objeto está disponible en la HttpRequestCachePolicy.Level propiedad .

Este BypassCache valor es el comportamiento de caché predeterminado especificado en el archivo de configuración de la máquina que se incluye con .NET Framework. No se toman entradas de las memorias caché, se agregan a las memorias caché ni se quitan de las memorias caché entre el cliente y el servidor.

La HttpWebRequest.DefaultCachePolicy propiedad se usa para obtener o establecer la directiva de caché predeterminada para HttpWebRequest instancias. La WebRequest.CachePolicy propiedad se usa para obtener o establecer la directiva de caché predeterminada para una WebRequest instancia de . La WebRequest.CachePolicy propiedad se usa para obtener o establecer la directiva de caché para una solicitud específica.

Si el comportamiento de la caché es CacheIfAvailable o Revalidate, solo se agrega una copia de un recurso solicitado a la memoria caché si se recupera y lee el flujo de respuesta del recurso al final de la secuencia. Con CacheIfAvailable, las solicitudes posteriores para el mismo recurso usarían una copia almacenada en caché. Con Revalidate, las solicitudes posteriores del mismo recurso usarían una copia almacenada en caché si la marca de tiempo del recurso almacenado en caché es la misma que la marca de tiempo del recurso en el servidor.

Una copia de un recurso solo se agrega a la memoria caché si se recupera y lee el flujo de respuesta del recurso al final de la secuencia. Por lo tanto, otra solicitud para el mismo recurso podría usar una copia almacenada en caché, en función del nivel de directiva de caché predeterminado para esta solicitud.

Se aplica a

Consulte también