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 、特定の要求のキャッシュ ポリシーを取得または設定するために使用されます。
キャッシュの動作が または Revalidate
の場合、CacheIfAvailable
要求されたリソースのコピーは、リソースの応答ストリームが取得され、ストリームの末尾に読み取られた場合にのみキャッシュに追加されます。 では CacheIfAvailable
、同じリソースに対する後続の要求では、キャッシュされたコピーが使用されます。 では Revalidate
、キャッシュされたリソースのタイムスタンプがサーバー上のリソースのタイムスタンプと同じである場合、同じリソースに対する後続の要求ではキャッシュされたコピーが使用されます。
リソースのコピーは、リソースの応答ストリームが取得され、ストリームの末尾に読み取られた場合にのみキャッシュに追加されます。 そのため、同じリソースに対する別の要求では、この要求の既定のキャッシュ ポリシー レベルに応じて、キャッシュされたコピーを使用できます。
適用対象
こちらもご覧ください
.NET