Cache Clase

Definición

Implementa la memoria caché de una aplicación web. Esta clase no puede heredarse.

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
Herencia
Cache
Implementaciones

Ejemplos

El ejemplo siguiente es una página que muestra a los usuarios el valor asignado a un elemento de la memoria caché y, a continuación, los notifica cuando el elemento se quita de la memoria caché. Crea un RemovedCallback método, que tiene la firma del CacheItemRemovedCallback delegado, para notificar a los usuarios cuándo se quita el elemento de caché y usa la CacheItemRemovedReason enumeración para indicarles por qué se quitó. Además, usa la Cache.Item[] propiedad para agregar objetos a la memoria caché y recuperar el valor de esos objetos. En el AddItemToCache método , usa el Cache.Add método para agregar un elemento a la memoria caché. Para usar el delegado CacheItemRemovedCallback, debe agregar un elemento a la memoria caché con este método o al método Cache.Insert, de modo que ASP.NET pueda realizar automáticamente las llamadas al método adecuado cuando se quita el elemento. El método personalizado RemoveItemFromCache usa el Cache.Remove método para eliminar explícitamente el elemento de la memoria caché, lo que hace que se invoque el RemovedCallback método .

Note

La instancia de Caché a la que accede el fragmento de código siguiente es un miembro del Page objeto que hereda este ejemplo.

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

Comentarios

Se crea una instancia de esta clase por dominio de aplicación y sigue siendo válida siempre que el dominio de aplicación permanezca activo. La información sobre una instancia de esta clase está disponible a través de la Cache propiedad del HttpContext objeto o la Cache propiedad del Page objeto .

Note

La clase />

Constructores

Nombre Description
Cache()

Inicializa una nueva instancia de la clase Cache.

Campos

Nombre Description
NoAbsoluteExpiration

Se usa en el absoluteExpiration parámetro en una Insert(String, Object) llamada de método para indicar que el elemento nunca debe expirar. Este campo es de sólo lectura.

NoSlidingExpiration

Se usa como parámetro slidingExpiration en una Insert(String, Object) llamada de método o Add(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback) para deshabilitar las expiraciones deslizantes. Este campo es de sólo lectura.

Propiedades

Nombre Description
Count

Obtiene el número de elementos almacenados en la memoria caché.

EffectivePercentagePhysicalMemoryLimit

Obtiene el porcentaje de memoria física que puede consumir una aplicación antes de que ASP.NET empiece a quitar elementos de la memoria caché.

EffectivePrivateBytesLimit

Obtiene el número de bytes disponibles para la memoria caché.

Item[String]

Obtiene o establece el elemento de caché en la clave especificada.

Métodos

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

Agrega el elemento especificado al Cache objeto con dependencias, directivas de expiración y prioridad, y un delegado que puede usar para notificar a la aplicación cuando se quita el elemento insertado de Cache.

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
Get(String)

Recupera el elemento especificado del Cache objeto .

GetEnumerator()

Recupera un enumerador de diccionario usado para recorrer en iteración la configuración de clave y sus valores contenidos en la memoria caché.

GetHashCode()

Actúa como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

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

Inserta un objeto en el Cache objeto con dependencias, directivas de expiración y prioridad, y un delegado que puede usar para notificar a la aplicación cuando se quita el elemento insertado de Cache.

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

Inserta un objeto en el Cache objeto junto con dependencias, directivas de expiración y un delegado que puede usar para notificar a la aplicación antes de quitar el elemento de la memoria caché.

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

Inserta un objeto en Cache con dependencias y directivas de expiración.

Insert(String, Object, CacheDependency)

Inserta un objeto en el Cache que tiene dependencias de archivo o clave.

Insert(String, Object)

Inserta un elemento en el Cache objeto con una clave de caché para hacer referencia a su ubicación, utilizando los valores predeterminados proporcionados por la CacheItemPriority enumeración.

MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
Remove(String)

Quita el elemento especificado del objeto de Cache la aplicación.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

Nombre Description
IEnumerable.GetEnumerator()

Devuelve un enumerador que puede recorrer en iteración la colección de Cache objetos.

Métodos de extensión

Nombre Description
AsParallel(IEnumerable)

Habilita la paralelización de una consulta.

AsQueryable(IEnumerable)

Convierte un IEnumerable en un IQueryable.

Cast<TResult>(IEnumerable)

Convierte los elementos de un IEnumerable al tipo especificado.

OfType<TResult>(IEnumerable)

Filtra los elementos de un IEnumerable en función de un tipo especificado.

Se aplica a

Seguridad para subprocesos

Este tipo es seguro para subprocesos.

Consulte también