RequestCacheLevel Výčet
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
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 |
| 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 |
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.