RequestCacheLevel Výčet

Definice

Určuje chování ukládání do mezipaměti pro prostředky získané pomocí WebRequest a jeho odvozené třídy.

public enum class RequestCacheLevel
public enum RequestCacheLevel
type RequestCacheLevel = 
Public Enum RequestCacheLevel
Dědičnost
RequestCacheLevel

Pole

BypassCache 1

Splňuje požadavek pomocí serveru. Z mezipaměti nejsou odebrány žádné položky, přidané do mezipaměti nebo odebrány z mezipaměti mezi klientem a serverem. Toto je výchozí chování mezipaměti zadané v konfiguračním souboru počítače, které se dodává s .NET Framework.

CacheIfAvailable 3

Splňuje požadavek na prostředek z mezipaměti, pokud je prostředek k dispozici; jinak odešle požadavek na prostředek na server. Pokud je požadovaná položka dostupná v jakékoli mezipaměti mezi klientem a serverem, může být požadavek spokojen s mezipamětí.

CacheOnly 2

Splňuje požadavek pomocí místně uloženého prostředku v mezipaměti; neodesílá žádost o položku, která není v mezipaměti. Pokud je tato úroveň zásad mezipaměti zadaná, vyvolá se výjimka, WebException pokud položka není v mezipaměti klienta.

Default 0

Splňuje požadavek na prostředek buď pomocí kopie prostředku uložené v mezipaměti, nebo odesláním požadavku na prostředek na server. Provedení akce je určeno aktuálními zásadami mezipaměti a věkem obsahu v mezipaměti. Jedná se o úroveň mezipaměti, kterou by měla používat většina aplikací.

NoCacheNoStore 6

Nikdy nesplňuje požadavek pomocí prostředků z mezipaměti a neukládá prostředky do mezipaměti. Pokud je prostředek v místní mezipaměti, odebere se. Tato úroveň zásad označuje zprostředkující mezipaměti, které by měly prostředek odebrat. V protokolu HTTP ukládání do mezipaměti se toho dosahuje pomocí direktivy no-cache řízení mezipaměti.

Reload 5

Splňuje požadavek pomocí serveru. Odpověď může být uložena v mezipaměti. V protokolu HTTP pro ukládání do mezipaměti se toho dosahuje pomocí no-cache direktivy řízení mezipaměti a hlavičky bez mezipaměti Pragma .

Revalidate 4

Splňuje požadavek pomocí kopie prostředku uložené v mezipaměti, pokud časové razítko je stejné jako časové razítko prostředku na serveru; jinak se prostředek stáhne ze serveru, zobrazí volajícímu a uloží se do mezipaměti.

Příklady

Následující příklad kódu vytvoří zásadu, která vrátí prostředek pouze v případě, že je v mezipaměti.

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

Poznámky

Členové tohoto výčtu slouží k inicializaci RequestCachePolicy objektů. Aktuální nastavení objektu RequestCachePolicy HttpRequestCachePolicy.Level je k dispozici ve vlastnosti.

Tato BypassCache hodnota je výchozí chování mezipaměti zadané v konfiguračním souboru počítače, který se dodává s .NET Framework. Z mezipaměti nejsou odebrány žádné položky, přidané do mezipaměti nebo odebrány z mezipaměti mezi klientem a serverem.

Vlastnost HttpWebRequest.DefaultCachePolicy slouží k získání nebo nastavení výchozích zásad mezipaměti pro HttpWebRequest instance. Vlastnost WebRequest.CachePolicy slouží k získání nebo nastavení výchozích zásad mezipaměti pro WebRequest instance. Vlastnost WebRequest.CachePolicy slouží k získání nebo nastavení zásad mezipaměti pro konkrétní požadavek.

Pokud je CacheIfAvailable chování mezipaměti nebo Revalidate, kopie požadovaného prostředku se přidá do mezipaměti pouze v případě, že se načte stream odpovědí pro prostředek a přečte se na konec datového proudu. V případě CacheIfAvailablenásledných požadavků na stejný prostředek by se použila kopie uložená v mezipaměti. Pokud Revalidateje časové razítko pro prostředek uložené v mezipaměti stejné jako časové razítko prostředku uloženého v mezipaměti, následné požadavky na stejný prostředek jako časové razítko prostředku na serveru.

Kopie prostředku se přidá do mezipaměti pouze v případě, že se načte stream odpovědí pro prostředek a načte se na konec streamu. Další požadavek na stejný prostředek by tedy mohl použít kopii uloženou v mezipaměti v závislosti na výchozí úrovni zásad mezipaměti pro tento požadavek.

Platí pro

Viz také