WebRequest.CachePolicy Propiedad

Definición

Obtiene o establece la directiva de caché para esta solicitud.

public:
 virtual property System::Net::Cache::RequestCachePolicy ^ CachePolicy { System::Net::Cache::RequestCachePolicy ^ get(); void set(System::Net::Cache::RequestCachePolicy ^ value); };
public virtual System.Net.Cache.RequestCachePolicy? CachePolicy { get; set; }
public virtual System.Net.Cache.RequestCachePolicy CachePolicy { get; set; }
member this.CachePolicy : System.Net.Cache.RequestCachePolicy with get, set
Public Overridable Property CachePolicy As RequestCachePolicy

Valor de propiedad

Un objeto RequestCachePolicy que define una directiva de caché.

Ejemplos

En el ejemplo de código siguiente se muestra cómo establecer la directiva de caché para una solicitud web.

// The following method demonstrates overriding the
// caching policy for a request.
static WebResponse^ GetResponseNoCache( Uri^ uri )
{
   // Set a default policy level for the "http:" and "https" schemes.
   HttpRequestCachePolicy^ policy = gcnew HttpRequestCachePolicy( HttpRequestCacheLevel::Default );
   HttpWebRequest::DefaultCachePolicy = policy;

   // Create the request.
   WebRequest^ request = WebRequest::Create( uri );

   // Define a cache policy for this request only. 
   HttpRequestCachePolicy^ noCachePolicy = gcnew HttpRequestCachePolicy( HttpRequestCacheLevel::NoCacheNoStore );
   request->CachePolicy = noCachePolicy;
   WebResponse^ response = request->GetResponse();
   Console::WriteLine( L"IsFromCache? {0}", response->IsFromCache );
   
   return response;
}
// The following method demonstrates overriding the
// caching policy for a request.
public static WebResponse GetResponseNoCache(Uri uri)
{
    // Set a default policy level for the "http:" and "https" schemes.
    HttpRequestCachePolicy policy = new HttpRequestCachePolicy(HttpRequestCacheLevel.Default);
    HttpWebRequest.DefaultCachePolicy = policy;
    // Create the request.
    WebRequest request = WebRequest.Create(uri);
    // Define a cache policy for this request only.
    HttpRequestCachePolicy noCachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore);
    request.CachePolicy = noCachePolicy;
    WebResponse response = request.GetResponse();
    Console.WriteLine("IsFromCache? {0}", response.IsFromCache);
    return response;
}

Comentarios

La directiva de caché actual y la presencia del recurso solicitado en la memoria caché determinan si se puede recuperar una respuesta de la memoria caché. El uso de respuestas almacenadas en caché suele mejorar el rendimiento de la aplicación, pero existe el riesgo de que la respuesta en la memoria caché no coincida con la respuesta en el servidor.

La directiva de caché predeterminada se puede especificar en el archivo de configuración de Machine.config o estableciendo la DefaultCachePolicy propiedad para las solicitudes que usan el protocolo de transferencia de hipertexto (HTTP) o el esquema URI del Protocolo de transferencia de hipertexto seguro (HTTPS).

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

Se aplica a

Consulte también