Freigeben über


CacheItemRemovedCallback-Delegat

Definiert eine Rückrufmethode zur Benachrichtigung einer Anwendung, wenn ein zwischengespeichertes Element aus dem Cache entfernt wird.

Namespace: System.Web.Caching
Assembly: System.Web (in system.web.dll)

Syntax

'Declaration
Public Delegate Sub CacheItemRemovedCallback ( _
    key As String, _
    value As Object, _
    reason As CacheItemRemovedReason _
)
'Usage
Dim instance As New CacheItemRemovedCallback(AddressOf HandlerMethod)
public delegate void CacheItemRemovedCallback (
    string key,
    Object value,
    CacheItemRemovedReason reason
)
public delegate void CacheItemRemovedCallback (
    String^ key, 
    Object^ value, 
    CacheItemRemovedReason reason
)
/** @delegate */
public delegate void CacheItemRemovedCallback (
    String key, 
    Object value, 
    CacheItemRemovedReason reason
)
JScript unterstützt die Verwendung von Delegaten, aber nicht die Deklaration von neuen Delegaten.

Parameter

  • key
    Der Schlüssel, der aus dem Cache entfernt wird.
  • value
    Das Object-Element, das dem aus dem Cache entfernten Schlüssel zugeordnet ist.
  • reason
    Die Ursache für das Entfernen des Elements aus dem Cache, wie in der CacheItemRemovedReason-Enumeration angegeben.

Beispiel

Im folgenden Codebeispiel wird eine Seite gezeigt, auf der Benutzern der einem Element im Cache zugeordnete Wert angezeigt wird. Außerdem werden die Benutzer informiert, wenn das Element aus dem Cache entfernt wird. Es wird eine RemovedCallback-Methode erstellt, die die Signatur des CacheItemRemovedCallback-Delegaten verwendet, um Benutzer zu informieren, wenn das Cacheelement entfernt wird, und mit der CacheItemRemovedReason-Enumeration wird den Benutzern der Grund für das Entfernen mitgeteilt. Außerdem wird die Cache.Item-Eigenschaft verwendet, um dem Cache Objekte hinzuzufügen und den Wert dieser Objekte abzurufen. Innerhalb der AddItemToCache-Methode wird die Cache.Add-Methode zum Hinzufügen eines Elements zum Cache verwendet. Zum Verwenden des CacheItemRemovedCallback-Delegaten müssen Sie mit dieser Methode oder mit der Cache.Insert-Methode ein Element zum Cache hinzufügen, damit ASP.NET beim Entfernen automatisch die richtigen Methodenaufrufen durchführen kann. Die benutzerdefinierte RemoveItemFromCache-Methode verwendet die Cache.Remove-Methode zum expliziten Löschen des Elements aus dem Cache, wobei die RemovedCallback-Methode aufgerufen wird.

<%@ Page Language="VB" %>

<html>
 <Script runat=server>
    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

    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), TimeSpan.Zero, CacheItemPriority.High, onRemove)
        End If
    End Sub

    Public Sub RemoveItemFromCache(sender As Object, e As EventArgs)
        If (Not IsNothing(Cache("Key1"))) Then
          Cache.Remove("Key1")
        End If
    End Sub
 </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
    Response.Write("Value of cache key: <B>" + Server.HtmlEncode(CType(Cache("Key1"),String)) + "</B>")
End If
%>
 </body>
</html>
<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), TimeSpan.Zero, 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>
<html>
 <Script runat=server language="JScript">

    static var itemRemoved : boolean = false;
    static var reason : CacheItemRemovedReason;
    var onRemove : CacheItemRemovedCallback = null;

    public function RemovedCallback(k : String, v : Object, r : CacheItemRemovedReason){
      itemRemoved = true;
      reason = r;
    }

    public function AddItemToCache(sender : Object, e : EventArgs) {
        itemRemoved = false;

        onRemove = this.RemovedCallback;

        if (Cache["Key1"] == null)
          Cache.Add("Key1", "Value 1", null, DateTime.Now.AddSeconds(10), TimeSpan.Zero, CacheItemPriority.High, onRemove);
    }

    public function RemoveItemFromCache(sender : Object, e : EventArgs) {
        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 + "</B>");
}
else {
    Response.Write("Value of cache key: <B>" + Server.HtmlEncode(Cache["Key1"].ToString()) + "</B>");
}
%>

 </body>
</html>

Plattformen

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

System.Web.Caching-Namespace
Cache-Klasse
CacheItemRemovedReason