RequestCacheLevel 枚举  
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
为使用 WebRequest 及其派生类获取的资源指定缓存行为。
public enum class RequestCacheLevelpublic enum RequestCacheLeveltype 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 用于获取或设置特定请求的缓存策略。
如果缓存行为为 CacheIfAvailable 或 Revalidate,则仅当检索资源的响应流并将其读取到流的末尾时,请求的资源的副本才会添加到缓存中。 使用 CacheIfAvailable时,对同一资源的后续请求将使用缓存副本。 使用 Revalidate,如果缓存资源的时间戳与服务器上资源的时间戳相同,则对同一资源的后续请求将使用缓存副本。
仅当检索到资源的响应流并将其读取到流的末尾时,才会将资源的副本添加到缓存中。 因此,针对同一资源的另一个请求可以使用缓存副本,具体取决于此请求的默认缓存策略级别。