RequestCacheLevel 列舉
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
指定使用 WebRequest 及其衍生類別取得之資源的快取行為。
public enum class RequestCacheLevel
public enum RequestCacheLevel
type RequestCacheLevel =
Public Enum RequestCacheLevel
- 繼承
欄位
BypassCache | 1 | 使用伺服器滿足要求。 用戶端與伺服器之間沒有任何項目取得自快取、加入快取或從快取移除。 這是電腦組態檔 (隨 .NET Framework 一起提供) 中指定的預設快取行為。 |
CacheIfAvailable | 3 | 如果資源可用,則從快取滿足資源要求,否則會將資源要求傳送至伺服器。 如果用戶端與伺服器之間的任何快取中存在要求的項目,則中繼快取可以滿足該要求。 |
CacheOnly | 2 | 使用本機快取的資源滿足要求;不傳送未在快取中的項目要求。 指定這個快取原則層級時,如果項目不在用戶端快取中,則會擲回 WebException 例外狀況。 |
Default | 0 | 使用資源的快取複本,或將資源要求傳送至伺服器,以滿足資源要求。 採取的動作要由目前的快取原則和快取中內容的保留期限決定。 這是大部分應用程式應當使用的快取層級。 |
NoCacheNoStore | 6 | 使用快取中的資源永遠無法滿足要求,也不會快取資源。 如果資源出現在本機快取中,則會將其移除。 這個原則層級表示中繼快取應當移除資源。 在 HTTP 快取通訊協定中,可以使用 |
Reload | 5 | 使用伺服器滿足要求。 回應可以儲存在快取中。 在 HTTP 快取通訊協定中,可以使用 |
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 可用來取得或設定特定要求的快取原則。
如果快取行為是 CacheIfAvailable
或 Revalidate
,則只有在擷取並讀取至數據流的響應數據流時,才會將要求資源的複本新增至快取。 使用 CacheIfAvailable
時,相同資源的後續要求會使用快取的複本。 使用 Revalidate
時,如果快取資源的時間戳與伺服器上的資源時間戳相同,則相同資源的後續要求會使用快取複本。
只有在擷取並讀取至數據流的響應數據流時,才會將資源的複本新增至快取。 因此,相同資源的另一個要求可以使用快取的複本,視此要求的預設快取原則層級而定。