Cache Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Implementa o cache de 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 informar 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 delegado CacheItemRemovedCallback, você deve adicionar um item ao cache com esse método ou o método Cache.Insert, 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.
Note
A instância do Cache que é acessada pelo snippet abaixo é um membro do Page objeto que este exemplo 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>
Comentários
Uma instância dessa classe é criada por domínio de 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.
Note
A classe Cache 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 Windows Forms, use a classe ObjectCache.
Construtores
| Nome | Description |
|---|---|
| Cache() |
Inicializa uma nova instância da classe Cache. |
Campos
| Nome | Description |
|---|---|
| NoAbsoluteExpiration |
Usado no |
| NoSlidingExpiration |
Usado como parâmetro |
Propriedades
| Nome | Description |
|---|---|
| Count |
Obtém o número de itens armazenados no cache. |
| EffectivePercentagePhysicalMemoryLimit |
Obtém a porcentagem de memória física que pode ser consumida por um aplicativo antes que 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
| Nome | 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 você pode usar para notificar seu aplicativo quando o item inserido for removido do |
| 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 por meio das configurações de chave e seus valores contidos no cache. |
| GetHashCode() |
Serve como a função 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 você pode usar para notificar seu aplicativo quando o item inserido for removido do |
| Insert(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemUpdateCallback) |
Insere um objeto no Cache objeto junto com dependências, políticas de expiração e um delegado que você pode usar para notificar o aplicativo antes que o item seja removido do cache. |
| Insert(String, Object, CacheDependency, DateTime, TimeSpan) |
Insere um objeto nas Cache políticas com dependências e expiração. |
| Insert(String, Object, CacheDependency) |
Insere um objeto no Cache que tem dependências de arquivo ou chave. |
| Insert(String, Object) |
Insere um item no Cache objeto com uma chave de cache para referenciar sua localização, usando valores padrão fornecidos pela CacheItemPriority enumeração. |
| MemberwiseClone() |
Cria uma cópia superficial do Objectatual. (Herdado de Object) |
| Remove(String) |
Remove o item especificado do objeto do Cache aplicativo. |
| ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
Implantações explícitas de interface
| Nome | Description |
|---|---|
| IEnumerable.GetEnumerator() |
Retorna um enumerador que pode iterar por meio da coleção de Cache objetos. |
Métodos de Extensão
| Nome | Description |
|---|---|
| AsParallel(IEnumerable) |
Habilita a paralelização de uma consulta. |
| AsQueryable(IEnumerable) |
Converte um IEnumerable em um IQueryable. |
| 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. |
Aplica-se a
Acesso thread-safe
Esse tipo é thread safe.