RequestCacheLevel Перечисление

Определение

Указывает поведение кэширования ресурсов, полученных с помощью класса WebRequest и производных от него.Specifies caching behavior for resources obtained using WebRequest and its derived classes.

public enum class RequestCacheLevel
public enum RequestCacheLevel
type RequestCacheLevel = 
Public Enum RequestCacheLevel
Наследование
RequestCacheLevel

Поля

BypassCache 1

Выполняет запрос, используя сервер.Satisfies a request by using the server. Записи не берутся из кэшей, не добавляются в кэши и не удаляются из кэшей между клиентом и сервером.No entries are taken from caches, added to caches, or removed from caches between the client and server. Таким является поведение кэша по умолчанию, указанное в файле конфигурации компьютера, который поставляется с платформой .NET Framework.This is the default cache behavior specified in the machine configuration file that ships with the .NET Framework.

CacheIfAvailable 3

Выполняет запрос ресурса из кэша, если ресурс доступен, в противном случае отправляет запрос ресурса на сервер.Satisfies a request for a resource from the cache, if the resource is available; otherwise, sends a request for a resource to the server. Если запрошенный элемент доступен в каком-либо кэше между клиентом к сервером, запрос может быть выполнен промежуточным кэшем.If the requested item is available in any cache between the client and the server, the request might be satisfied by the intermediate cache.

CacheOnly 2

Выполняет запрос, используя ресурс из локального кэша, и не отправляет запрос элемента, которого нет в кэше.Satisfies a request using the locally cached resource; does not send a request for an item that is not in the cache. Если указан этот уровень политики кэша, в случае отсутствия элемента в клиентском кэше генерируется исключение WebException.When this cache policy level is specified, a WebException exception is thrown if the item is not in the client cache.

Default 0

Выполняет запрос ресурса с помощью кэшированной копии ресурса или путем отправки запроса ресурса на сервер.Satisfies a request for a resource either by using the cached copy of the resource or by sending a request for the resource to the server. Выполняемое действие определяется текущей политикой кэша и временем существования содержимого кэша.The action taken is determined by the current cache policy and the age of the content in the cache. Это уровень кэша, который должен использоваться большинством приложений.This is the cache level that should be used by most applications.

NoCacheNoStore 6

Никогда не выполняет запрос, используя ресурсы из кэша, и не кэширует ресурсы.Never satisfies a request by using resources from the cache and does not cache resources. Если ресурс есть в локальном кэше, он удаляется.If the resource is present in the local cache, it is removed. Этот уровень политики указывает, что ресурс должен быть удален из промежуточных кэшей.This policy level indicates to intermediate caches that they should remove the resource. В протоколе кэширования HTTP для этого используется директива управления кэшем no-cache.In the HTTP caching protocol, this is achieved using the no-cache cache control directive.

Reload 5

Выполняет запрос, используя сервер.Satisfies a request by using the server. Ответ может быть сохранен в кэше.The response might be saved in the cache. В протоколе кэширования HTTP для этого используется директива управления кэшем no-cache и заголовок Pragma no-cache.In the HTTP caching protocol, this is achieved using the no-cache cache control directive and the no-cache Pragma header.

Revalidate 4

Выполняет запрос, используя кэшированную копию ресурса, если метка времени ресурса совпадает с меткой времени ресурса на сервере, в противном случае ресурс загружается с сервера, представляется вызывающему объекту и сохраняется в кэше.Satisfies a request by using the cached copy of the resource if the timestamp is the same as the timestamp of the resource on the server; otherwise, the resource is downloaded from the server, presented to the caller, and stored in the cache.

Примеры

В следующем примере кода создается политика, которая возвращает ресурс только в том случае, если он находится в кэше.The following code example creates policy that returns a resource only if it is in the 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;
}

Комментарии

Члены этого перечисления используются для инициализации RequestCachePolicy объектов.Members of this enumeration are used to initialize RequestCachePolicy objects. Текущее значение для RequestCachePolicy объекта доступно в HttpRequestCachePolicy.Level свойстве.The current setting for a RequestCachePolicy object is available in the HttpRequestCachePolicy.Level property.

Это BypassCache значение является поведением кэша по умолчанию, указанным в файле конфигурации компьютера, который поставляется с .NET Framework.This BypassCache value is the default cache behavior specified in the machine configuration file that ships with the .NET Framework. Записи не берутся из кэшей, не добавляются в кэши и не удаляются из кэшей между клиентом и сервером.No entries are taken from caches, added to caches, or removed from caches between the client and server.

HttpWebRequest.DefaultCachePolicyСвойство используется для получения или задания политики кэша по умолчанию для HttpWebRequest экземпляров.The HttpWebRequest.DefaultCachePolicy property is used to get or set the default cache policy for HttpWebRequest instances. WebRequest.CachePolicyСвойство используется для получения или задания политики кэша по умолчанию для WebRequest экземпляров.The WebRequest.CachePolicy property is used to get or set the default cache policy for a WebRequest instances. WebRequest.CachePolicyСвойство используется для получения или задания политики кэша для конкретного запроса.The WebRequest.CachePolicy property is used to get or set the cache policy for a specific request.

Если кэширование имеет значение CacheIfAvailable или Revalidate , то копия запрошенного ресурса добавляется в кэш только в том случае, если поток ответа для ресурса извлекается и считывается в конец потока.If the cache behavior is CacheIfAvailable or Revalidate, a copy of a requested resource is only added to the cache if the response stream for the resource is retrieved and read to the end of the stream. В CacheIfAvailable последующие запросы к тому же ресурсу будут использовать кэшированную копию.With CacheIfAvailable, subsequent requests for the same resource would use a cached copy. В Revalidate последующие запросы к тому же ресурсу будут использовать кэшированную копию, если метка времени для кэшированного ресурса совпадает с меткой времени ресурса на сервере.With Revalidate, subsequent requests for the same resource would use a cached copy if the timestamp for the cached resource is the same as the timestamp of the resource on the server.

Копия ресурса добавляется в кэш только в том случае, если поток ответа для ресурса извлекается и считывается в конец потока.A copy of a resource is only added to the cache if the response stream for the resource is retrieved and read to the end of the stream. Поэтому другой запрос к тому же ресурсу может использовать кэшированную копию в зависимости от уровня политики кэша по умолчанию для этого запроса.So another request for the same resource could use a cached copy, depending on the default cache policy level for this request.

Применяется к

См. также раздел