RequestCacheLevel 列舉

定義

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

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

欄位

BypassCache 1

使用伺服器滿足要求。 用戶端與伺服器之間沒有任何項目取得自快取、加入快取或從快取移除。 這是電腦組態檔 (隨 .NET Framework 一起提供) 中指定的預設快取行為。

CacheIfAvailable 3

如果資源可用,則從快取滿足資源要求,否則會將資源要求傳送至伺服器。 如果用戶端與伺服器之間的任何快取中存在要求的項目,則中繼快取可以滿足該要求。

CacheOnly 2

使用本機快取的資源滿足要求;不傳送未在快取中的項目要求。 指定這個快取原則層級時,如果項目不在用戶端快取中,則會擲回 WebException 例外狀況。

Default 0

使用資源的快取複本,或將資源要求傳送至伺服器,以滿足資源要求。 採取的動作要由目前的快取原則和快取中內容的保留期限決定。 這是大部分應用程式應當使用的快取層級。

NoCacheNoStore 6

使用快取中的資源永遠無法滿足要求,也不會快取資源。 如果資源出現在本機快取中,則會將其移除。 這個原則層級表示中繼快取應當移除資源。 在 HTTP 快取通訊協定中,可以使用 no-cache 快取控制項指示詞達到此效果。

Reload 5

使用伺服器滿足要求。 回應可以儲存在快取中。 在 HTTP 快取通訊協定中,可以使用 no-cache 快取控制項指示詞和 no-cache Pragma 標頭達到此效果。

Revalidate 4

如果時間戳記與伺服器上資源的時間戳記相同,則使用資源的快取複本滿足要求,否則,會從伺服器下載該資源,將其呈現給呼叫端,並儲存在快取中。

範例

下列程式碼範例會建立只會在快取中傳回資源的原則。

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

備註

這個列舉的成員是用來初始化 RequestCachePolicy 物件。 物件的目前設定 RequestCachePolicy 可在 屬性中使用 HttpRequestCachePolicy.Level

這個 BypassCache 值是隨附于.NET Framework之機器組態檔中指定的預設快取行為。 用戶端與伺服器之間沒有任何項目取得自快取、加入快取或從快取移除。

屬性 HttpWebRequest.DefaultCachePolicy 是用來取得或設定實例的預設快取原則 HttpWebRequest 。 屬性 WebRequest.CachePolicy 是用來取得或設定實例的預設快取原則 WebRequest 。 屬性 WebRequest.CachePolicy 是用來取得或設定特定要求的快取原則。

如果快取行為為 CacheIfAvailableRevalidate ,則只有在擷取並讀取至資料流程的回應資料流程時,才會將要求資源的複本新增至快取。 使用 CacheIfAvailable 時,相同資源的後續要求會使用快取的複本。 使用 Revalidate 時,如果快取資源的時間戳記與伺服器上的資源時間戳記相同,則相同資源的後續要求會使用快取複本。

只有在擷取並讀取至資料流程的回應資料流程時,才會將資源的複本新增至快取。 因此,相同資源的另一個要求可以使用快取複本,視此要求的預設快取原則層級而定。

適用於

另請參閱