创建基于时间的缓存策略时,可以通过指定最大期限、最小新鲜度、最大过期时间或缓存同步日期的值来自定义缓存行为。 该 HttpRequestCachePolicy 对象提供了多个构造函数,可用于指定这些值的有效组合。
创建使用缓存同步日期的基于时间的缓存策略
通过向构造函数传递 DateTime 对象来创建使用缓存同步日期的基于时间的 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
输出类似于以下内容:
When: 1/14/2004 8:07:30 AM
Level:Default CacheSyncDate:1/14/2004 8:07:30 AM
创建基于最小新鲜度的时间缓存策略
通过指定 MinFresh 为 cacheAgeControl 参数值并将对象传递给 TimeSpan 构造函数,创建基于最小新鲜性的基于时间的 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
对于以下调用:
CreateMinFreshPolicy(new TimeSpan(1,0,0));
输出为:
Level:Default MinFresh:3600
创建基于最小新鲜度和最长期限的基于时间的缓存策略
通过指定 MaxAgeAndMinFresh 为 cacheAgeControl 参数值并将两 TimeSpan 个对象 HttpRequestCachePolicy 传递给构造函数,创建基于最小新鲜度和最大期限的基于时间的缓存策略,一个用于指定资源的最大期限,另一个用于指定从缓存返回的对象允许的最低新鲜度:
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