Sdílet prostřednictvím


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

Name Hodnota Description
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. Akce je určena aktuálními zásadami mezipaměti a věkem obsahu v mezipaměti. Toto je úroveň mezipaměti, kterou by měla používat většina aplikací.

BypassCache 1

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

CacheOnly 2

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

CacheIfAvailable 3

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

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.

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í direktivy no-cache řízení mezipaměti a hlavičky bez mezipaměti Pragma .

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 pro ukládání do mezipaměti se toho dosahuje pomocí direktivy no-cache řízení 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.

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

Členy tohoto výčtu se používají k inicializaci RequestCachePolicy objektů. Aktuální nastavení objektu RequestCachePolicyHttpRequestCachePolicy.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ý je dodáván s rozhraním .NET Framework. Z mezipamětí se neodeberou žádné položky, přidají se do mezipamětí nebo se odeberou z mezipamětí 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 datový proud odpovědi pro prostředek a nač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 Revalidateby následné požadavky na stejný prostředek používaly kopii uloženou v mezipaměti, pokud je časové razítko pro prostředek v mezipaměti stejné 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 datového proudu. 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é