RequestCacheLevel Enumeration
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt das Zwischenspeicherungsverhalten für Ressourcen an, die mithilfe von WebRequest und den abgeleiteten Klassen abgerufen werden.
public enum class RequestCacheLevel
public enum RequestCacheLevel
type RequestCacheLevel =
Public Enum RequestCacheLevel
- Vererbung
Felder
| Name | Wert | Beschreibung |
|---|---|---|
| Default | 0 | Erfüllt eine Anforderung für eine Ressource entweder mithilfe der zwischengespeicherten Kopie der Ressource oder durch Senden einer Anforderung für die Ressource an den Server. Die ausgeführte Aktion wird durch die aktuelle Cacherichtlinie und das Alter des Inhalts im Cache bestimmt. Dies ist die Cacheebene, die von den meisten Anwendungen verwendet werden soll. |
| BypassCache | 1 | Erfüllt eine Anforderung mithilfe des Servers. Es werden keine Einträge aus Caches übernommen, zu Caches hinzugefügt oder aus Caches zwischen Client und Server entfernt. Dies ist das Standardcacheverhalten, das in der Computerkonfigurationsdatei angegeben ist, die im Lieferumfang von .NET Framework enthalten ist. |
| CacheOnly | 2 | Erfüllt eine Anforderung mithilfe der lokal zwischengespeicherten Ressource; sendet keine Anforderung für ein Element, das sich nicht im Cache befindet. Wenn diese Cacherichtlinienebene angegeben wird, wird eine WebException Ausnahme ausgelöst, wenn sich das Element nicht im Clientcache befindet. |
| CacheIfAvailable | 3 | Erfüllt eine Anforderung für eine Ressource aus dem Cache, wenn die Ressource verfügbar ist; sendet andernfalls eine Anforderung für eine Ressource an den Server. Wenn das angeforderte Element in einem Cache zwischen dem Client und dem Server verfügbar ist, wird die Anforderung möglicherweise vom Zwischencache erfüllt. |
| Revalidate | 4 | Erfüllt eine Anforderung mithilfe der zwischengespeicherten Kopie der Ressource, wenn der Zeitstempel mit dem Zeitstempel der Ressource auf dem Server identisch ist; andernfalls wird die Ressource vom Server heruntergeladen, dem Aufrufer angezeigt und im Cache gespeichert. |
| Reload | 5 | Erfüllt eine Anforderung mithilfe des Servers. Die Antwort kann im Cache gespeichert werden. Im HTTP-Cacheprotokoll wird dies mithilfe der |
| NoCacheNoStore | 6 | Erfüllt niemals eine Anforderung, indem Ressourcen aus dem Cache verwendet werden und keine Ressourcen zwischengespeichert werden. Wenn die Ressource im lokalen Cache vorhanden ist, wird sie entfernt. Diese Richtlinienebene gibt an, dass zwischengespeicherte Caches entfernt werden sollen. Im HTTP-Cacheprotokoll wird dies mithilfe der |
Beispiele
Im folgenden Codebeispiel wird eine Richtlinie erstellt, die nur dann eine Ressource zurückgibt, wenn sie sich im Cache befindet.
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;
}
Hinweise
Elemente dieser Aufzählung werden zum Initialisieren RequestCachePolicy von Objekten verwendet. Die aktuelle Einstellung für ein RequestCachePolicy Objekt ist in der HttpRequestCachePolicy.Level Eigenschaft verfügbar.
Dieser BypassCache Wert ist das Standardcacheverhalten, das in der Computerkonfigurationsdatei angegeben ist, die im Lieferumfang von .NET Framework enthalten ist. Es werden keine Einträge aus Caches übernommen, zu Caches hinzugefügt oder aus Caches zwischen Client und Server entfernt.
Die HttpWebRequest.DefaultCachePolicy Eigenschaft wird verwendet, um die Standardcacherichtlinie für HttpWebRequest Instanzen abzurufen oder festzulegen. Die WebRequest.CachePolicy Eigenschaft wird verwendet, um die Standardcacherichtlinie für eine WebRequest Instanz abzurufen oder festzulegen. Die WebRequest.CachePolicy Eigenschaft wird verwendet, um die Cacherichtlinie für eine bestimmte Anforderung abzurufen oder festzulegen.
Wenn das Cacheverhalten besteht CacheIfAvailable oder Revalidate, wird eine Kopie einer angeforderten Ressource nur dem Cache hinzugefügt, wenn der Antwortdatenstrom für die Ressource abgerufen und am Ende des Datenstroms gelesen wird. Bei CacheIfAvailablenachfolgenden Anforderungen für dieselbe Ressource würde eine zwischengespeicherte Kopie verwendet. Bei Revalidatenachfolgenden Anforderungen für dieselbe Ressource würde eine zwischengespeicherte Kopie verwendet, wenn der Zeitstempel für die zwischengespeicherte Ressource mit dem Zeitstempel der Ressource auf dem Server identisch ist.
Eine Kopie einer Ressource wird nur dem Cache hinzugefügt, wenn der Antwortdatenstrom für die Ressource abgerufen und am Ende des Datenstroms gelesen wird. Eine andere Anforderung für dieselbe Ressource könnte also abhängig von der Standardcacherichtlinienebene für diese Anforderung eine zwischengespeicherte Kopie verwenden.