CacheItemRemovedCallback Delegato

Definizione

Definisce un metodo di callback per notificare alle applicazioni quando un elemento nella cache viene rimosso dall'oggetto Cache.Defines a callback method for notifying applications when a cached item is removed from the Cache.

public delegate void CacheItemRemovedCallback(System::String ^ key, System::Object ^ value, CacheItemRemovedReason reason);
public delegate void CacheItemRemovedCallback(string key, object value, CacheItemRemovedReason reason);
type CacheItemRemovedCallback = delegate of string * obj * CacheItemRemovedReason -> unit
Public Delegate Sub CacheItemRemovedCallback(key As String, value As Object, reason As CacheItemRemovedReason)

Parametri

key
String

Chiave rimossa dalla cache.The key that is removed from the cache.

value
Object

Elemento Object associato alla chiave rimossa dalla cache.The Object item associated with the key removed from the cache.

reason
CacheItemRemovedReason

Motivo per cui l'elemento è stato rimosso dalla cache, come specificato dall'enumerazione CacheItemRemovedReason.The reason the item was removed from the cache, as specified by the CacheItemRemovedReason enumeration.

Esempio

Nell'esempio di codice seguente viene illustrata una pagina che mostra agli utenti il valore assegnato a un elemento nella cache e quindi invia una notifica quando l'elemento viene rimosso dalla cache.The following code example demonstrates a page that shows users the value assigned to an item in the cache and then notifies them when the item is removed from the cache. Viene creato un RemovedCallback metodo, che usa la firma del CacheItemRemovedCallback delegato, per notificare agli utenti quando l'elemento della cache viene rimosso e usa l' CacheItemRemovedReason enumerazione per indicare perché è stato rimosso.It creates a RemovedCallback method, which uses the signature of the CacheItemRemovedCallback delegate, to notify users when the cache item is removed and uses the CacheItemRemovedReason enumeration to tell them why it was removed. USA inoltre la Cache.Item[] proprietà per aggiungere oggetti alla cache e recuperare il valore di tali oggetti.In addition, it uses the Cache.Item[] property to add objects to the cache and retrieve the value of those objects. Nel AddItemToCache metodo usa il Cache.Add metodo per aggiungere un elemento alla cache.In the AddItemToCache method, it uses the Cache.Add method to add an item to the cache. Per usare il CacheItemRemovedCallback delegato, è necessario aggiungere un elemento alla cache con questo metodo o il Cache.Insert metodo in modo che ASP.NET possa effettuare automaticamente le chiamate al metodo appropriate quando l'elemento viene rimosso.To use the CacheItemRemovedCallback delegate, you must add an item to the cache with this method or the Cache.Insert method so that ASP.NET can automatically make the proper method calls when the item is removed. Il RemoveItemFromCache metodo personalizzato usa il Cache.Remove metodo per eliminare in modo esplicito l'elemento dalla cache, causando la RemovedCallback chiamata al metodo.The custom RemoveItemFromCache method uses the Cache.Remove method to explicitly delete the item from the cache, causing the RemovedCallback method to be invoked.

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

Metodi di estensione

GetMethodInfo(Delegate)

Ottiene un oggetto che rappresenta il metodo rappresentato dal delegato specificato.Gets an object that represents the method represented by the specified delegate.

Si applica a

Vedi anche