方法: 時間ベースのキャッシュ ポリシーをカスタマイズする

時間ベースのキャッシュ ポリシーを作成する場合、最大有効期間、最小鮮度、最大期限延長、またはキャッシュ同期日付の値を指定することで、キャッシュの動作をカスタマイズできます。 HttpRequestCachePolicy オブジェクトは、これらの値の有効な組み合わせを指定できるようにする複数のコンストラクターを提供します。

キャッシュ同期日付を使用する時間ベースのキャッシュ ポリシーを作成するには

HttpRequestCachePolicy コンストラクターに DateTime オブジェクトを渡して、キャッシュ同期日付を使用する時間ベースのキャッシュ ポリシーを作成します。

public static HttpRequestCachePolicy CreateLastSyncPolicy(DateTime when)
{
    var policy = new HttpRequestCachePolicy(when);
    Console.WriteLine("When: {0}", when);
    Console.WriteLine(policy.ToString());
    return policy;
}
Public Shared Function CreateLastSyncPolicy([when] As DateTime) As HttpRequestCachePolicy
    Dim policy As New HttpRequestCachePolicy([when])
    Console.WriteLine("When: {0}", [when])
    Console.WriteLine(policy.ToString())
    Return policy
End Function

次のように出力されます。

When: 1/14/2004 8:07:30 AM
Level:Default CacheSyncDate:1/14/2004 8:07:30 AM

最小鮮度に基づく時間ベースのキャッシュ ポリシーを作成するには

cacheAgeControl パラメーター値として MinFresh を指定し、HttpRequestCachePolicy コンストラクターに TimeSpan オブジェクトを渡して、最小鮮度に基づく時間ベースのキャッシュ ポリシーを作成します。

public static HttpRequestCachePolicy CreateMinFreshPolicy(TimeSpan span)
{
    var policy = new HttpRequestCachePolicy(HttpCacheAgeControl.MinFresh, span);
    Console.WriteLine(policy.ToString());
    return policy;
}
Public Shared Function CreateMinFreshPolicy(span As TimeSpan) As HttpRequestCachePolicy
    Dim policy As New HttpRequestCachePolicy(HttpCacheAgeControl.MinFresh, span)
    Console.WriteLine(policy.ToString())
    Return policy
End Function

呼び出しと出力例を以下に示します。

CreateMinFreshPolicy(new TimeSpan(1,0,0));

出力は次のようになります。

Level:Default MinFresh:3600

最小鮮度と最大有効期間に基づく時間ベースのキャッシュ ポリシーを作成するには

cacheAgeControl パラメーター値として MaxAgeAndMinFresh を指定し、HttpRequestCachePolicy コンストラクターに 2 つの TimeSpan オブジェクト (1 つはリソースの最大有効期間を指定し、もう 1 つはキャッシュから返されたオブジェクトで許可される最小鮮度を指定する) を渡して、最小鮮度と最大有効期間に基づく時間ベースのキャッシュ ポリシーを作成します。

public static HttpRequestCachePolicy CreateFreshAndAgePolicy(TimeSpan freshMinimum, TimeSpan ageMaximum)
{
    var policy = new HttpRequestCachePolicy(HttpCacheAgeControl.MaxAgeAndMinFresh, ageMaximum, freshMinimum);
    Console.WriteLine(policy.ToString());
    return policy;
}
Public Shared Function CreateFreshAndAgePolicy(freshMinimum As TimeSpan, ageMaximum As TimeSpan) As HttpRequestCachePolicy
    Dim policy As New HttpRequestCachePolicy(HttpCacheAgeControl.MaxAgeAndMinFresh, ageMaximum, freshMinimum)
    Console.WriteLine(policy.ToString())
    Return policy
End Function

呼び出しと出力例を以下に示します。

CreateFreshAndAgePolicy(new TimeSpan(5,0,0), new TimeSpan(10,0,0));  

出力は次のようになります。

Level:Default MaxAge:36000 MinFresh:18000  

関連項目