CacheItemRemovedCallback Temsilci

Tanım

önbelleğe alınmış bir öğe öğesinden Cachekaldırıldığında uygulamaları bilgilendirmek için bir geri çağırma yöntemi tanımlar.

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)

Parametreler

key
String

Önbellekten kaldırılan anahtar.

value
Object

Object Önbellekten kaldırılan anahtarla ilişkilendirilmiş öğe.

reason
CacheItemRemovedReason

Öğenin sabit listesi tarafından belirtildiği gibi önbellekten kaldırılmasının CacheItemRemovedReason nedeni.

Örnekler

Aşağıdaki kod örneği, kullanıcılara önbellekteki bir öğeye atanan değeri gösteren ve öğe önbellekten kaldırıldığında onlara bildirimde bulunan bir sayfayı gösterir. Önbellek öğesi kaldırıldığında kullanıcıları bilgilendirmek için temsilcinin CacheItemRemovedCallback imzasını kullanan bir RemovedCallback yöntem oluşturur ve neden kaldırıldığını söylemek için numaralandırmayı kullanırCacheItemRemovedReason. Ayrıca, önbelleğe nesne eklemek ve bu nesnelerin değerini almak için özelliğini kullanır Cache.Item[] . yönteminde AddItemToCache , önbelleğe bir öğe eklemek için yöntemini kullanır Cache.Add . Temsilciyi CacheItemRemovedCallback kullanmak için, bu yöntem veya Cache.Insert yöntemle önbelleğe bir öğe eklemeniz gerekir, böylece ASP.NET öğe kaldırıldığında uygun yöntem çağrılarını otomatik olarak yapabilir. Özel RemoveItemFromCache yöntem, öğeyi önbellekten açıkça silmek için yöntemini kullanır Cache.Remove ve yöntemin RemovedCallback çağrılmasına neden olur.

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

Uzantı Metotları

GetMethodInfo(Delegate)

Belirtilen temsilci tarafından temsil edilen yöntemi temsil eden bir nesnesi alır.

Şunlara uygulanır

Ayrıca bkz.