英語で読む

次の方法で共有


RequestCacheLevel 列挙型

定義

WebRequest およびその派生クラスを使用して取得されるリソースのキャッシュ動作を指定します。

C#
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

タイムスタンプがサーバーのリソースのタイムスタンプと同じ場合は、キャッシュされたリソースのコピーを使用して要求に応じます。それ以外の場合は、リソースがサーバーからダウンロードされ、呼び出し元に提示され、キャッシュに格納されます。

次のコード例では、リソースがキャッシュ内にある場合にのみリソースを返すポリシーを作成します。

C#
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 Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

こちらもご覧ください