Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original. |
Traducción
Original
|
CacheItemRemovedCallback (Delegado)
Define un método de devolución de llamada para notificar a las aplicaciones cuándo se quita un elemento almacenado en caché del objeto Cache.
Ensamblado: System.Web (en System.Web.dll)
public delegate void CacheItemRemovedCallback( string key, Object value, CacheItemRemovedReason reason )
Parámetros
- key
- Tipo: System.String
Clave que se elimina de la caché.
- value
- Tipo: System.Object
Elemento Object asociado a la clave eliminada de la caché.
- reason
- Tipo: System.Web.Caching.CacheItemRemovedReason
Razón por la que se quitó el elemento de la memoria caché, tal y como especifica la enumeración de CacheItemRemovedReason.
En el ejemplo de código siguiente se muestra una página que proporciona a los usuarios el valor asignado a un elemento de la caché y, a continuación, notifica cuándo se elimina el elemento de la caché. Crea un método RemovedCallback que utiliza la firma del delegado CacheItemRemovedCallback para notificar a los usuarios cuándo se elimina el elemento de la caché, y utiliza la enumeración CacheItemRemovedReason para explicarles por qué se eliminó. Además, utiliza la propiedad Cache.Item para agregar objetos a la caché y recuperar el valor de esos objetos. En el método AddItemToCache, utiliza el método Cache.Add para agregar un elemento a la caché. Para utilizar el delegado CacheItemRemovedCallback, debe agregar un elemento a la caché con este método o con el método Cache.Insert para que ese ASP.NET pueda realizar llamadas apropiadas al método de forma automática cuando se elimina el elemento. El método RemoveItemFromCache personalizado utiliza el método Cache.Remove para eliminar explícitamente el elemento de la caché, lo que provoca la invocación del método RemovedCallback.
<html> <Script runat=server language="C#"> static bool itemRemoved = false; static CacheItemRemovedReason reason; CacheItemRemovedCallback onRemove = null; public void RemovedCallback(String k, Object v, CacheItemRemovedReason r){ itemRemoved = true; reason = r; } 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); } public void RemoveItemFromCache(Object sender, EventArgs e) { if(Cache["Key1"] != null) Cache.Remove("Key1"); } </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 { Response.Write("Value of cache key: <B>" + Server.HtmlEncode(Cache["Key1"] as string) + "</B>"); } %> </body> </html>
Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2
.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.