RequestCacheLevel Enumeração

Definição

Especifica o comportamento de cache para recursos obtidos usando WebRequest e as suas classes derivadas.

public enum class RequestCacheLevel
public enum RequestCacheLevel
type RequestCacheLevel = 
Public Enum RequestCacheLevel
Herança
RequestCacheLevel

Campos

Name Valor Description
Default 0

Satisfaz um pedido para um recurso usando a cópia em cache do recurso ou enviando um pedido para o servidor. A ação tomada é determinada pela política atual da cache e pela idade do conteúdo na cache. Este é o nível de cache que deve ser usado pela maioria das aplicações.

BypassCache 1

Satisfaz um pedido usando o servidor. Nenhuma entrada é retirada das caches, adicionada às caches ou removida das caches entre o cliente e o servidor. Este é o comportamento de cache predefinido especificado no ficheiro de configuração da máquina que vem com o .NET Framework.

CacheOnly 2

Satisfaz um pedido usando o recurso localmente cacheado; não envia um pedido para um item que não esteja na cache. Quando este nível de política de cache é especificado, é lançada uma WebException exceção se o item não estiver na cache do cliente.

CacheIfAvailable 3

Satisfaz um pedido de recurso da cache, se o recurso estiver disponível; caso contrário, envia um pedido de recurso para o servidor. Se o item solicitado estiver disponível em qualquer cache entre o cliente e o servidor, o pedido pode ser satisfeito pela cache intermédia.

Revalidate 4

Satisfaz um pedido usando a cópia em cache do recurso se o carimbo temporal for igual ao carimbo temporal do recurso no servidor; caso contrário, o recurso é descarregado do servidor, apresentado ao chamador e armazenado na cache.

Reload 5

Satisfaz um pedido usando o servidor. A resposta pode estar guardada na cache. No protocolo de cache HTTP, isto é conseguido usando a no-cache diretiva de controlo de cache e o cabeçalho no-cache Pragma .

NoCacheNoStore 6

Nunca satisfaz um pedido usando recursos da cache e não armazena recursos em cache. Se o recurso estiver presente na cache local, é removido. Este nível de política indica aos caches intermédios que devem remover o recurso. No protocolo de cache HTTP, isto é conseguido usando a no-cache diretiva de controlo da cache.

Exemplos

O exemplo de código seguinte cria uma política que devolve um recurso apenas se este estiver na cache.

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

Observações

Os membros desta enumeração são usados para inicializar RequestCachePolicy objetos. A configuração atual para um RequestCachePolicy objeto está disponível na HttpRequestCachePolicy.Level propriedade.

Este valor BypassCache é o comportamento padrão da cache especificado no ficheiro de configuração da máquina que vem com o .NET Framework. Nenhuma entrada é retirada das caches, adicionada às caches ou removida das caches entre o cliente e o servidor.

A HttpWebRequest.DefaultCachePolicy propriedade é usada para obter ou definir a política de cache padrão para HttpWebRequest as instâncias. A WebRequest.CachePolicy propriedade é usada para obter ou definir a política de cache padrão para uma WebRequest instância. A WebRequest.CachePolicy propriedade é usada para obter ou definir a política de cache para um pedido específico.

Se o comportamento da cache for CacheIfAvailable ou Revalidate, uma cópia de um recurso solicitado só é adicionada à cache se o fluxo de resposta do recurso for recuperado e lido até ao final do fluxo. Com , pedidos CacheIfAvailablesubsequentes para o mesmo recurso usariam uma cópia em cache. Com , pedidos Revalidatesubsequentes para o mesmo recurso usariam uma cópia em cache se o carimbo temporal do recurso em cache for o mesmo que o carimbo temporal do recurso no servidor.

Uma cópia de um recurso só é adicionada à cache se o fluxo de resposta do recurso for recuperado e lido até ao final do fluxo. Assim, outro pedido para o mesmo recurso pode usar uma cópia em cache, dependendo do nível padrão da política de cache para este pedido.

Aplica-se a

Ver também