RequestCacheLevel Enumeração
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Especifica o comportamento de cache para recursos obtidos usando WebRequest e suas classes derivadas.
public enum class RequestCacheLevel
public enum RequestCacheLevel
type RequestCacheLevel =
Public Enum RequestCacheLevel
- Herança
Campos
| Nome | Valor | Description |
|---|---|---|
| Default | 0 | Atende a uma solicitação de um recurso usando a cópia armazenada em cache do recurso ou enviando uma solicitação para o recurso para o servidor. A ação tomada é determinada pela política de cache atual e pela idade do conteúdo no cache. Esse é o nível de cache que deve ser usado pela maioria dos aplicativos. |
| BypassCache | 1 | Atende a uma solicitação usando o servidor. Nenhuma entrada é retirada de caches, adicionada a caches ou removida de caches entre o cliente e o servidor. Esse é o comportamento de cache padrão especificado no arquivo de configuração do computador fornecido com o .NET Framework. |
| CacheOnly | 2 | Atende a uma solicitação usando o recurso armazenado em cache localmente; não envia uma solicitação para um item que não está no cache. Quando esse nível de política de cache é especificado, uma WebException exceção é gerada se o item não estiver no cache do cliente. |
| CacheIfAvailable | 3 | Atende a uma solicitação de um recurso do cache, se o recurso estiver disponível; caso contrário, envia uma solicitação de um recurso para o servidor. Se o item solicitado estiver disponível em qualquer cache entre o cliente e o servidor, a solicitação poderá ser atendida pelo cache intermediário. |
| Revalidate | 4 | Atende a uma solicitação usando a cópia armazenada em cache do recurso se o carimbo de data/hora for o mesmo que o carimbo de data/hora do recurso no servidor; caso contrário, o recurso é baixado do servidor, apresentado ao chamador e armazenado no cache. |
| Reload | 5 | Atende a uma solicitação usando o servidor. A resposta pode ser salva no cache. No protocolo de cache HTTP, isso é obtido usando a |
| NoCacheNoStore | 6 | Nunca atende a uma solicitação usando recursos do cache e não armazena recursos em cache. Se o recurso estiver presente no cache local, ele será removido. Esse nível de política indica aos caches intermediários que eles devem remover o recurso. No protocolo de cache HTTP, isso é obtido usando a |
Exemplos
O exemplo de código a seguir cria uma política que retorna um recurso somente se ele estiver no 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;
}
Comentários
Os membros dessa enumeração são usados para inicializar RequestCachePolicy objetos. A configuração atual de um RequestCachePolicy objeto está disponível na HttpRequestCachePolicy.Level propriedade.
Esse BypassCache valor é o comportamento de cache padrão especificado no arquivo de configuração do computador fornecido com o .NET Framework. Nenhuma entrada é retirada de caches, adicionada a caches ou removida de 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 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 uma solicitação específica.
Se o comportamento do cache for CacheIfAvailable ou Revalidate, uma cópia de um recurso solicitado só será adicionada ao cache se o fluxo de resposta do recurso for recuperado e lido até o final do fluxo. Com CacheIfAvailableas solicitações subsequentes para o mesmo recurso usariam uma cópia armazenada em cache. Com Revalidate, as solicitações subsequentes para o mesmo recurso usariam uma cópia armazenada em cache se o carimbo de data/hora do recurso armazenado em cache for o mesmo que o carimbo de data/hora do recurso no servidor.
Uma cópia de um recurso só será adicionada ao cache se o fluxo de resposta do recurso for recuperado e lido até o final do fluxo. Portanto, outra solicitação para o mesmo recurso pode usar uma cópia armazenada em cache, dependendo do nível de política de cache padrão dessa solicitação.