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 jejich odvozené třídy.
public enum class RequestCacheLevel
public enum RequestCacheLevel
type RequestCacheLevel =
Public Enum RequestCacheLevel
- Dědičnost
Pole
BypassCache | 1 | Vyhodí požadavek pomocí serveru. Mezi klientem a serverem se z mezipamětí nepřečtou žádné položky, nepřidávají se do mezipamětí ani se z mezipamětí neodeberou. Toto je výchozí chování mezipaměti zadané v konfiguračním souboru počítače, který se dodává s rozhraním .NET Framework. |
CacheIfAvailable | 3 | Splňuje požadavek na prostředek z mezipaměti, pokud je prostředek k dispozici; v opačném případě odešle žádost o 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 zprostředkující mezipamětí. |
CacheOnly | 2 | Splňuje požadavek pomocí prostředku v místní mezipaměti; neodesílá požadavek na položku, která není v mezipaměti. Pokud je tato úroveň zásad mezipaměti zadána, dojde k výjimce 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. Přijatá akce je určená aktuálními zásadami mezipaměti a stářím obsahu v mezipaměti. Toto je úroveň mezipaměti, kterou by měla používat většina aplikací. |
NoCacheNoStore | 6 | Nikdy nesplní požadavek pomocí prostředků z mezipaměti a neukládá prostředky do mezipaměti. Pokud se prostředek nachází v místní mezipaměti, odebere se. Tato úroveň zásad indikuje zprostředkujícím mezipamětím, že by měly prostředek odebrat. V protokolu HTTP ukládání do mezipaměti se toho dosahuje pomocí direktivy |
Reload | 5 | Vyhodí požadavek pomocí serveru. Odpověď může být uložena v mezipaměti. V protokolu HTTP ukládání do mezipaměti se toho dosahuje pomocí direktivy |
Revalidate | 4 | Splňuje požadavek pomocí kopie prostředku uložené v mezipaměti, pokud je časové razítko stejné jako časové razítko prostředku na serveru; v opačném případě se prostředek stáhne ze serveru, předá volajícímu a uloží se do mezipaměti. |
Příklady
Následující příklad kódu vytvoří zásadu, která vrací 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
Členy tohoto výčtu se používají k inicializaci RequestCachePolicy objektů. Aktuální nastavení objektu RequestCachePolicy je k dispozici ve HttpRequestCachePolicy.Level 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 rozhraním .NET Framework. Mezi klientem a serverem se z mezipamětí nepřečtou žádné položky, nepřidávají se do mezipamětí ani se z mezipamětí neodeberou.
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
Revalidate
chování mezipaměti nebo , přidá se kopie požadovaného prostředku do mezipaměti pouze v případě, že se datový proud odpovědi pro prostředek načte a přečte na konec datového proudu. V CacheIfAvailable
případě by následné požadavky na stejný prostředek používaly kopii v mezipaměti. V Revalidate
případě nástroje by následné požadavky na stejný prostředek používaly kopii uloženou v mezipaměti, pokud je časové razítko prostředku uloženého v mezipaměti stejné jako časové razítko prostředku na serveru.
Kopie prostředku se do mezipaměti přidá jenom v případě, že se datový proud odpovědi pro prostředek načte a přečte na konec datového proudu. V závislosti na výchozí úrovni zásad mezipaměti pro tento požadavek by tedy mohl použít další požadavek na stejný prostředek kopii v mezipaměti.