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

Определение

Указывает поведение кэширования ресурсов, полученных с помощью класса WebRequest и производных от него.

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

Поля

BypassCache 1

Выполняет запрос, используя сервер. Записи не берутся из кэшей, не добавляются в кэши и не удаляются из кэшей между клиентом и сервером. Таким является поведение кэша по умолчанию, указанное в файле конфигурации компьютера, который поставляется с платформой .NET Framework.

CacheIfAvailable 3

Выполняет запрос ресурса из кэша, если ресурс доступен, в противном случае отправляет запрос ресурса на сервер. Если запрошенный элемент доступен в каком-либо кэше между клиентом к сервером, запрос может быть выполнен промежуточным кэшем.

CacheOnly 2

Выполняет запрос, используя ресурс из локального кэша, и не отправляет запрос элемента, которого нет в кэше. Если указан этот уровень политики кэша, в случае отсутствия элемента в клиентском кэше генерируется исключение WebException.

Default 0

Выполняет запрос ресурса с помощью кэшированной копии ресурса или путем отправки запроса ресурса на сервер. Выполняемое действие определяется текущей политикой кэша и временем существования содержимого кэша. Это уровень кэша, который должен использоваться большинством приложений.

NoCacheNoStore 6

Никогда не выполняет запрос, используя ресурсы из кэша, и не кэширует ресурсы. Если ресурс есть в локальном кэше, он удаляется. Этот уровень политики указывает, что ресурс должен быть удален из промежуточных кэшей. В протоколе кэширования HTTP для этого используется директива управления кэшем no-cache.

Reload 5

Выполняет запрос, используя сервер. Ответ может быть сохранен в кэше. В протоколе кэширования HTTP для этого используется директива управления кэшем no-cache и заголовок Pragma no-cache.

Revalidate 4

Выполняет запрос, используя кэшированную копию ресурса, если метка времени ресурса совпадает с меткой времени ресурса на сервере, в противном случае ресурс загружается с сервера, представляется вызывающему объекту и сохраняется в кэше.

Примеры

В следующем примере кода создается политика, которая возвращает ресурс, только если он находится в кэше.

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 объектов. Текущий RequestCachePolicy параметр для объекта доступен в свойстве HttpRequestCachePolicy.Level .

Это BypassCache значение является поведением кэша по умолчанию, указанным в файле конфигурации компьютера, который поставляется с платформа .NET Framework. Записи не берутся из кэшей, не добавляются в кэши и не удаляются из кэшей между клиентом и сервером.

Свойство HttpWebRequest.DefaultCachePolicy используется для получения или задания политики кэша по умолчанию для HttpWebRequest экземпляров. Свойство WebRequest.CachePolicy используется для получения или задания политики кэша по умолчанию для WebRequest экземпляров. Свойство WebRequest.CachePolicy используется для получения или задания политики кэша для определенного запроса.

Если поведение кэша или CacheIfAvailable Revalidate, копия запрошенного ресурса добавляется в кэш только в том случае, если поток ответа для ресурса извлекается и считывается в конец потока. При CacheIfAvailableэтом последующие запросы для того же ресурса будут использовать кэшированную копию. При Revalidateэтом последующие запросы для того же ресурса будут использовать кэшированную копию, если метка времени для кэшированного ресурса совпадает с меткой времени ресурса на сервере.

Копия ресурса добавляется в кэш только в том случае, если поток ответа для ресурса извлекается и считывается в конец потока. Таким образом, другой запрос для того же ресурса может использовать кэшированную копию в зависимости от уровня политики кэша по умолчанию для этого запроса.

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

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