CacheItemRemovedCallback デリゲート
アセンブリ: System.Web (system.web.dll 内)

Public Delegate Sub CacheItemRemovedCallback ( _ key As String, _ value As Object, _ reason As CacheItemRemovedReason _ )
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 )

キャッシュ内の項目に割り当てられた値をユーザーに表示し、項目がキャッシュから削除されたときにユーザーに通知するページのコード例を次に示します。このコード例では、CacheItemRemovedCallback デリゲートのシグネチャを使用した RemovedCallback メソッドを作成して、キャッシュ項目が削除されたときにユーザーに通知し、CacheItemRemovedReason 列挙体を使用して、ユーザーに削除の理由を通知します。さらに、Cache.Item プロパティを使用して、オブジェクトをキャッシュに追加し、それらのオブジェクトの値を取得します。AddItemToCache メソッドでは、Cache.Add メソッドを使用して、項目をキャッシュに追加します。CacheItemRemovedCallback デリゲートを使用するには、このメソッドまたは Cache.Insert メソッドを使用して項目をキャッシュに追加し、項目が削除されたときに、ASP.NET が適切なメソッドを自動的に呼び出すことができるようにする必要があります。カスタム RemoveItemFromCache メソッドは、Cache.Remove メソッドを使用して、項目を明示的にキャッシュから削除します。その結果、RemovedCallback メソッドが呼び出されます。
<%@ 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>

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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からCacheItemRemovedCallback デリゲートを検索する場合は、下記のリンクをクリックしてください。

- CacheItemRemovedCallback デリゲートのページへのリンク