다음을 통해 공유


CacheItemRemovedCallback 대리자

정의

캐시된 항목이 해당 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)

매개 변수

key
String

캐시에서 제거되는 키입니다.

value
Object

캐시에서 제거되는 키와 관련된 Object 항목입니다.

reason
CacheItemRemovedReason

항목이 캐시에서 제거된 이유입니다. CacheItemRemovedReason 열거형으로 지정됩니다.

예제

다음 코드 예제에서는 사용자 캐시에서 항목에 할당 된 값을 보여 주는 페이지를 보여 줍니다 및 다음 항목은 캐시에서 제거 되 면 알립니다. 만듭니다는 RemovedCallback 의 시그니처를 사용 하는 CacheItemRemovedCallback 캐시 항목이 제거 되 고 사용 하는 경우 사용자에 게 알려야 대리자는 CacheItemRemovedReason 제거 된 이유를 알려주는 열거형. 또한에서는 Cache.Item[] 속성 캐시에 개체를 추가 하 고 해당 개체의 값을 검색 합니다. 에 AddItemToCache 메서드를 사용 하 여는 Cache.Add 캐시에 항목을 추가 하는 방법입니다. 대리자를 CacheItemRemovedCallback 사용하려면 항목을 제거할 때 ASP.NET 자동으로 적절한 메서드 호출을 수행할 수 있도록 이 메서드 또는 Cache.Insert 메서드를 사용하여 캐시에 항목을 추가해야 합니다. 사용자 지정 RemoveItemFromCache 메서드를 Cache.Remove 메서드를 명시적으로 캐시에서 항목을 삭제 발생는 RemovedCallback 메서드를 호출할 수 있습니다.

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

확장 메서드

GetMethodInfo(Delegate)

지정된 대리자가 나타내는 메서드를 나타내는 개체를 가져옵니다.

적용 대상

추가 정보