Cache Classe

Definição

Implementa a cache para uma aplicação Web. Esta classe não pode ser herdada.

public ref class Cache sealed : System::Collections::IEnumerable
public sealed class Cache : System.Collections.IEnumerable
type Cache = class
    interface IEnumerable
Public NotInheritable Class Cache
Implements IEnumerable
Herança
Cache
Implementações

Exemplos

O exemplo seguinte é uma página que mostra aos utilizadores o valor atribuído a um item na cache e depois os notifica quando o item é removido da cache. Cria um RemovedCallback método, que tem a assinatura do CacheItemRemovedCallback delegado, para notificar os utilizadores quando o item de cache é removido, e usa a CacheItemRemovedReason enumeração para lhes explicar porque foi removido. Além disso, utiliza a Cache.Item[] propriedade para adicionar objetos à cache e recuperar o valor desses objetos. No AddItemToCache método, utiliza o Cache.Add método para adicionar um item à cache. Para usar o delegado CacheItemRemovedCallback, deve adicionar um item à cache com este método ou com o método Cache.Insert, para que ASP.NET possa fazer automaticamente as chamadas corretas ao método quando o item for removido. O método personalizado RemoveItemFromCache usa o Cache.Remove método para eliminar explicitamente o item da cache, fazendo com que o RemovedCallback método seja invocado.

Note

A instância de Cache acedida pelo snippet abaixo é um membro do Page objeto que esta amostra herda.

<html>
 <Script runat=server language="C#">
// <snippet2>
    static bool itemRemoved = false;
    static CacheItemRemovedReason reason;
    CacheItemRemovedCallback onRemove = null;

    public void RemovedCallback(String k, Object v, CacheItemRemovedReason r){
      itemRemoved = true;
      reason = r;
    }
// </snippet2>

// <snippet3>
    public void AddItemToCache(Object sender, EventArgs e) {
        itemRemoved = false;

        onRemove = new CacheItemRemovedCallback(this.RemovedCallback);

        if (Cache["Key1"] == null)
          Cache.Add("Key1", "Value 1", null, DateTime.Now.AddSeconds(60), Cache.NoSlidingExpiration, CacheItemPriority.High, onRemove);
    }
// </snippet3>

// <snippet4>
    public void RemoveItemFromCache(Object sender, EventArgs e) {
        if(Cache["Key1"] != null)
          Cache.Remove("Key1");
    }
// </snippet4>
 </Script>
 <body>
  <Form runat="server">
   <input type=submit OnServerClick="AddItemToCache" value="Add Item To Cache" runat="server"/>
   <input type=submit OnServerClick="RemoveItemFromCache" value="Remove Item From Cache" runat="server"/>
  </Form>
  <% if (itemRemoved) {
        Response.Write("RemovedCallback event raised.");
        Response.Write("<BR>");
        Response.Write("Reason: <B>" + reason.ToString() + "</B>");
     }
     else {
// <snippet5>
        Response.Write("Value of cache key: <B>" + Server.HtmlEncode(Cache["Key1"] as string) + "</B>");
// </snippet5>
     }
  %>
 </body>
</html>
<%@ Page Language="VB" %>

<html>
 <Script runat=server>
' <snippet2>
    Shared itemRemoved As boolean = false
    Shared reason As CacheItemRemovedReason
    Dim onRemove As CacheItemRemovedCallback

    Public Sub RemovedCallback(k As String, v As Object, r As CacheItemRemovedReason)
      itemRemoved = true
      reason = r
    End Sub
' </snippet2>

' <snippet3>
    Public Sub AddItemToCache(sender As Object, e As EventArgs)
        itemRemoved = false

        onRemove = New CacheItemRemovedCallback(AddressOf Me.RemovedCallback)

        If (IsNothing(Cache("Key1"))) Then
          Cache.Add("Key1", "Value 1", Nothing, DateTime.Now.AddSeconds(60), Cache.NoSlidingExpiration, CacheItemPriority.High, onRemove)
        End If
    End Sub
' </snippet3>

' <snippet4>
    Public Sub RemoveItemFromCache(sender As Object, e As EventArgs)
        If (Not IsNothing(Cache("Key1"))) Then
          Cache.Remove("Key1")
        End If
    End Sub
' </snippet4>
 </Script>

 <body>
  <Form runat="server">
    <input type=submit OnServerClick="AddItemToCache" value="Add Item To Cache" runat="server"/>
    <input type=submit OnServerClick="RemoveItemFromCache" value="Remove Item From Cache" runat="server"/>
  </Form>
<%
If (itemRemoved) Then
    Response.Write("RemovedCallback event raised.")
    Response.Write("<BR>")
    Response.Write("Reason: <B>" + reason.ToString() + "</B>")
Else
' <snippet5>
    Response.Write("Value of cache key: <B>" + Server.HtmlEncode(CType(Cache("Key1"),String)) + "</B>")
' </snippet5>
End If
%>
 </body>
</html>

Observações

Uma instância desta classe é criada por domínio de aplicação, e permanece válida enquanto o domínio de aplicação permanecer ativo. A informação sobre uma instância desta classe está disponível através da Cache propriedade do HttpContext objeto ou da Cache propriedade do objeto Page .

Note

A classe Cache não é destinada a ser usada fora de ASP.NET aplicações. Foi concebido e testado para uso em ASP.NET para fornecer cache para aplicações Web. Para outros tipos de aplicações, como aplicações de consola ou aplicações Windows Forms, use a classe ObjectCache.

Construtores

Name Description
Cache()

Inicializa uma nova instância da Cache classe.

Campos

Name Description
NoAbsoluteExpiration

Usado no absoluteExpiration parâmetro numa Insert(String, Object) chamada de método para indicar que o item nunca deve expirar. Este campo é só de leitura.

NoSlidingExpiration

Usado como slidingExpiration parâmetro numa Insert(String, Object) chamada de método ou Add(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback) para desativar expirações deslizantes. Este campo é só de leitura.

Propriedades

Name Description
Count

Obtém o número de itens armazenados na cache.

EffectivePercentagePhysicalMemoryLimit

Obtém a percentagem de memória física que pode ser consumida por uma aplicação antes do ASP.NET começar a remover itens da cache.

EffectivePrivateBytesLimit

Obtém o número de bytes disponíveis para a cache.

Item[String]

Obtém ou define o item cache na chave especificada.

Métodos

Name Description
Add(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback)

Adiciona o item especificado ao Cache objeto com dependências, políticas de expiração e prioridade, e um delegado que pode usar para notificar a sua aplicação quando o item inserido for removido do Cachearquivo .

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Get(String)

Recupera o item especificado do Cache objeto.

GetEnumerator()

Recupera um enumerador de dicionário usado para iterar pelas definições de chaves e pelos seus valores contidos na cache.

GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
Insert(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback)

Insere um objeto no Cache objeto com dependências, políticas de expiração e prioridade, e um delegado que pode usar para notificar a sua aplicação quando o item inserido for removido do Cachearquivo .

Insert(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemUpdateCallback)

Insere um objeto no Cache objeto juntamente com dependências, políticas de expiração e um delegado que pode usar para notificar a aplicação antes de o item ser removido da cache.

Insert(String, Object, CacheDependency, DateTime, TimeSpan)

Insere um objeto no Cache com dependências e políticas de expiração.

Insert(String, Object, CacheDependency)

Insere um objeto no Cache que tem dependências de ficheiro ou chave.

Insert(String, Object)

Insere um item no Cache objeto com uma chave de cache para referenciar a sua localização, usando os valores predefinidos fornecidos pela CacheItemPriority enumeração.

MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
Remove(String)

Remove o item especificado do objeto da Cache aplicação.

ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Implementações de Interface Explícita

Name Description
IEnumerable.GetEnumerator()

Devolve um enumerador que pode iterar através da Cache coleção de objetos.

Métodos da Extensão

Name Description
AsParallel(IEnumerable)

Permite a paralelização de uma consulta.

AsQueryable(IEnumerable)

Converte um IEnumerable para um IQueryable.

Cast<TResult>(IEnumerable)

Conjura os elementos de an IEnumerable para o tipo especificado.

OfType<TResult>(IEnumerable)

Filtra os elementos de um IEnumerable com base num tipo especificado.

Aplica-se a

Segurança de Thread

Este tipo é seguro para fios.

Ver também