CacheItemRemovedCallback 代理人

定義

キャッシュされた項目が 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)

パラメーター

key
String

キャッシュから削除されたキー。The key that is removed from the cache.

value
Object

キャッシュから削除されたキーに関連付けられた Object 項目。The Object item associated with the key removed from the cache.

reason
CacheItemRemovedReason

CacheItemRemovedReason 列挙体によって指定された、キャッシュから項目が削除された理由。The reason the item was removed from the cache, as specified by the CacheItemRemovedReason enumeration.

継承
CacheItemRemovedCallback

次のコード例は、キャッシュ内の項目に割り当てられた値をユーザーに表示し、項目がキャッシュから削除されたときにその値を通知するページを示しています。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. このメソッドはRemovedCallbackCacheItemRemovedCallbackデリゲートのシグネチャを使用して、キャッシュ項目CacheItemRemovedReasonが削除されたときにユーザーに通知し、その列挙体を使用して削除された理由を通知します。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. また、 Cache.Item[String]プロパティを使用して、キャッシュにオブジェクトを追加し、それらのオブジェクトの値を取得します。In addition, it uses the Cache.Item[String] property to add objects to the cache and retrieve the value of those objects. メソッドでは、 Cache.Addメソッドを使用して項目をキャッシュに追加します。 AddItemToCacheIn the AddItemToCache method, it uses the Cache.Add method to add an item to the cache. CacheItemRemovedCallbackデリゲートを使用するにCache.Insertは、このメソッドまたはメソッドを使用してキャッシュに項目を追加する必要があります。これにより、項目が削除されたときに ASP.NET が自動的に適切なメソッドを呼び出すことができるようになります。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. カスタムRemoveItemFromCacheメソッドは、 Cache.Removeメソッドを使用してキャッシュから項目を明示的に削除RemovedCallbackし、メソッドを呼び出します。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>

拡張メソッド

GetMethodInfo(Delegate)

指定したデリゲートによって表されるメソッドを表すオブジェクトを取得します。Gets an object that represents the method represented by the specified delegate.

適用対象

こちらもご覧ください