Compartir a través de


Cache Clase

Definición

Implementa la caché para 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

En el ejemplo siguiente se muestra 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 CacheItemRemovedCallback delegado, debe agregar un elemento a la memoria caché con este método o el Cache.Insert método , de modo que ASP.NET pueda realizar automáticamente las llamadas de método adecuadas cuando se quite 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 .

Nota

La instancia de Cache 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 permanece 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 .

Nota

La Cache clase no está pensada para su uso fuera de ASP.NET aplicaciones. Se diseñó y probó para su uso en ASP.NET para proporcionar almacenamiento en caché para las aplicaciones web. Para otros tipos de aplicaciones, como aplicaciones de consola o aplicaciones de Windows Forms, use la ObjectCache clase .

Constructores

Cache()

Inicializa una nueva instancia de la clase Cache.

Campos

NoAbsoluteExpiration

Se utiliza en el parámetro absoluteExpiration de una llamada al método Insert(String, Object) para indicar que el elemento no debe expirar nunca. Este campo es de solo lectura.

NoSlidingExpiration

Se utiliza como el parámetro slidingExpiration en una llamada al método Insert(String, Object) o Add(String, Object, CacheDependency, DateTime, TimeSpan, CacheItemPriority, CacheItemRemovedCallback)para deshabilitar las expiraciones variables. Este campo es de solo lectura.

Propiedades

Count

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

EffectivePercentagePhysicalMemoryLimit

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

EffectivePrivateBytesLimit

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

Item[String]

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

Métodos

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

Agrega el elemento especificado al objeto Cache con directivas de dependencias, expiración y prioridad, así como un delegado que se puede utilizar para notificar a la aplicación cuándo el elemento insertado se quita de la memoria Cache.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
Get(String)

Recupera el elemento especificado del objeto Cache.

GetEnumerator()

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

GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
Insert(String, Object)

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

Insert(String, Object, CacheDependency)

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

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

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

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

Inserta un objeto en el objeto Cache con directivas de dependencias, expiración y prioridad, así como un delegado que se puede utilizar para notificar a la aplicación cuándo se quita de la memoria Cache el elemento insertado.

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

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

MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
Remove(String)

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

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

IEnumerable.GetEnumerator()

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

Métodos de extensión

Cast<TResult>(IEnumerable)

Convierte los elementos de IEnumerable en el tipo especificado.

OfType<TResult>(IEnumerable)

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

AsParallel(IEnumerable)

Habilita la paralelización de una consulta.

AsQueryable(IEnumerable)

Convierte una interfaz IEnumerable en IQueryable.

Se aplica a

Seguridad para subprocesos

Este tipo es seguro para la ejecución de subprocesos.

Consulte también