Procedura: Personalizzare criteri di cache basati sul tempo

Quando si creano criteri di cache basati sul tempo, è possibile personalizzare il comportamento di memorizzazione nella cache specificando i valori per durata massima, validità minima, obsolescenza massima o data di sincronizzazione della cache. L'oggetto HttpRequestCachePolicy fornisce più costruttori che consentono di specificare le combinazioni valide di questi valori.

Per creare un criterio di cache basato sul tempo che usa una data di sincronizzazione della cache

Creare un criterio di cache basato sul tempo che usa una data di sincronizzazione della cache passando un oggetto DateTime al costruttore HttpRequestCachePolicy:

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

L'output è simile al seguente:

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

Per creare un criterio di cache basato sul tempo con impostazione della validità minima

Creare un criterio di cache basato sul tempo con impostazione della validità minima specificando MinFresh come valore del parametro cacheAgeControl e passando un oggetto TimeSpan al costruttore HttpRequestCachePolicy:

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

Per la chiamata seguente:

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

L'output è il seguente:

Level:Default MinFresh:3600

Per creare un criterio di cache basato sul tempo con impostazione della validità minima e della durata massima

Creare un criterio di cache basato sul tempo con impostazione della validità minima e della durata massima specificando MaxAgeAndMinFresh come valore del parametro cacheAgeControl e passando due oggetti TimeSpan al costruttore HttpRequestCachePolicy, uno per specificare la durata massima delle risorse e il secondo per specificare la validità minima consentita per un oggetto restituito dalla cache:

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

Per la chiamata seguente:

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

L'output è il seguente:

Level:Default MaxAge:36000 MinFresh:18000  

Vedi anche