Cache Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 |
NoSlidingExpiration |
Se utiliza como el parámetro |
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 |
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 |
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.