共用方式為


RequestCacheLevel 列舉

定義

指定使用 WebRequest 及其衍生類別取得之資源的快取行為。

public enum class RequestCacheLevel
public enum RequestCacheLevel
type RequestCacheLevel = 
Public Enum RequestCacheLevel
繼承
RequestCacheLevel

欄位

名稱 Description
Default 0

透過使用資源快取副本或向伺服器發送資源請求,來滿足對資源的請求。 所採取的行動取決於當前快取政策及快取內容的使用年限。 這是大多數應用程式應該使用的快取層級。

BypassCache 1

透過伺服器來滿足請求。 用戶端與伺服器之間的快取不會被取取、加入快取或移除任何資料。 這是隨 .NET Framework 附帶的機器設定檔中預設的快取行為。

CacheOnly 2

使用本地快取資源滿足請求;不會發送不在快取中的項目請求。 當指定此快取政策層級時, WebException 若該項目不在用戶端快取中,則會拋出例外。

CacheIfAvailable 3

滿足快取對資源的請求(若資源可用);否則,會向伺服器發送資源請求。 如果請求的項目在用戶端與伺服器之間的任一快取中可用,則中介快取可能會滿足該請求。

Revalidate 4

若時間戳記與伺服器資源的時間戳相同,則透過快取的資源副本滿足請求;否則,資源會從伺服器下載,呈現給呼叫者,並儲存在快取中。

Reload 5

透過伺服器來滿足請求。 回應可能會被儲存在快取中。 在 HTTP 快取協定中,這是透過 no-cache 快取控制指令和無快取 Pragma 標頭來實現的。

NoCacheNoStore 6

從不使用快取資源來滿足請求,也不會快取資源。 如果資源存在於本地快取中,則會被移除。 此政策層級指示中介快取應移除該資源。 在 HTTP 快取協定中,這是透過 no-cache 快取控制指令來實現的。

範例

以下程式碼範例建立的政策是,只有資源在快取中時才回傳。

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

備註

此枚舉的成員用於初始化 RequestCachePolicy 物件。 物件目前的設定 RequestCachePolicy 可在屬性中 HttpRequestCachePolicy.Level 取得。

BypassCache 值是隨 .NET Framework 附帶的機器設定檔中指定的預設快取行為。 用戶端與伺服器之間的快取不會被取取、加入快取或移除任何資料。

HttpWebRequest.DefaultCachePolicy 屬性用於取得或設定實例的 HttpWebRequest 預設快取政策。 這個 WebRequest.CachePolicy 屬性用來取得或設定實例的 WebRequest 預設快取政策。 這個 WebRequest.CachePolicy 屬性用來取得或設定特定請求的快取政策。

若快取行為為 CacheIfAvailableRevalidate,則只有當該資源的回應串流被檢索並讀取到串流末端時,才會將該請求資源的副本加入快取。 當 CacheIfAvailable時,對同一資源的後續請求會使用快取的副本。 若快 Revalidate取資源的時間戳記與伺服器資源的時間戳相同,則對同一資源的後續請求將使用快取副本。

只有當資源的回應串流被檢索並讀取到串流末端時,才會將資源的副本加入快取。 因此,同一資源的另一個請求可能會使用快取副本,這取決於該請求的預設快取政策層級。

適用於

另請參閱