Compartilhar via


Cache Classe

Definição

Implementa o cache para um aplicativo Web. Essa 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 a seguir é uma página que mostra aos usuários o valor atribuído a um item no cache e os notifica quando o item é removido do cache. Ele cria um RemovedCallback método, que tem a assinatura do CacheItemRemovedCallback delegado, para notificar os usuários quando o item de cache é removido e usa a CacheItemRemovedReason enumeração para dizer a eles por que ele foi removido. Além disso, ele usa a Cache.Item[] propriedade para adicionar objetos ao cache e recuperar o valor desses objetos. AddItemToCache No método , ele usa o Cache.Add método para adicionar um item ao cache. Para usar o CacheItemRemovedCallback delegado, você deve adicionar um item ao cache com esse método ou o Cache.Insert método , para que ASP.NET possa fazer automaticamente as chamadas de método adequadas quando o item for removido. O método personalizado RemoveItemFromCache usa o Cache.Remove método para excluir explicitamente o item do cache, fazendo com que o RemovedCallback método seja invocado.

Observação

A instância do Cache acessada pelo snippet abaixo é um membro do Page objeto herdado por este exemplo.

<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>

Comentários

Uma instância dessa classe é criada por domínio do aplicativo e permanece válida enquanto o domínio do aplicativo permanecer ativo. Informações sobre uma instância dessa classe estão disponíveis por meio da Cache propriedade do HttpContext objeto ou da Cache propriedade do Page objeto.

Observação

A Cache classe não se destina ao uso fora de aplicativos ASP.NET. Ele foi projetado e testado para uso em ASP.NET para fornecer cache para aplicativos Web. Para outros tipos de aplicativos, como aplicativos de console ou aplicativos do Windows Forms, use a ObjectCache classe .

Construtores

Cache()

Inicializa uma nova instância da classe Cache.

Campos

NoAbsoluteExpiration

Usado no absoluteExpiration parâmetro em um Insert(String, Object) chamada de método para indicar que o item nunca expirará. Este campo é somente leitura.

NoSlidingExpiration

Usado como o parâmetro slidingExpiration em um método Insert(String, Object) ou Add(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback) chamado para desabilitar as expirações deslizantes. Este campo é somente leitura.

Propriedades

Count

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

EffectivePercentagePhysicalMemoryLimit

Obtém o percentual de memória física que pode ser consumido por um aplicativo antes que o ASP.NET comece a remover itens do cache.

EffectivePrivateBytesLimit

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

Item[String]

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

Métodos

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

Adiciona o item especificado ao objeto Cache com dependências, políticas de término e prioridade, bem como um delegado que pode ser usado para notificar o aplicativo quando o item inserido é removido do Cache.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Get(String)

Recupera o item especificado do objeto Cache.

GetEnumerator()

Recupera um enumerador de dicionário usado para iterar pelas configurações de chave e os valores contidos no cache.

GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
Insert(String, Object)

Insere um item no objeto Cache com uma chave de cache para fazer referência à sua localização, usando os valores padrão fornecidos pela enumeração CacheItemPriority.

Insert(String, Object, CacheDependency)

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

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

Insere um objeto no Cache com dependências e políticas de vencimento.

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

Insere um objeto no objeto Cache com dependências, políticas de expiração e de prioridade, além de um delegado que você pode usar para notificar o aplicativo quando o item inserido é removido do Cache.

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

Insere um objeto no objeto Cache junto com as dependências, políticas de expiração e um delegado que pode ser usado para notificar o aplicativo antes que o item seja removido do cache.

MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
Remove(String)

Remove o item especificado do objeto Cache do aplicativo.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

IEnumerable.GetEnumerator()

Retorna um enumerador que pode iterar pela coleção do objeto Cache.

Métodos de Extensão

Cast<TResult>(IEnumerable)

Converte os elementos de um IEnumerable para o tipo especificado.

OfType<TResult>(IEnumerable)

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

AsParallel(IEnumerable)

Habilita a paralelização de uma consulta.

AsQueryable(IEnumerable)

Converte um IEnumerable em um IQueryable.

Aplica-se a

Acesso thread-safe

Este tipo é thread-safe.

Confira também