CacheItemRemovedCallback Delegate


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Defines a callback method for notifying applications when a cached item is removed from the Cache.

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

public delegate void CacheItemRemovedCallback(
	string key,
	object value,
	CacheItemRemovedReason reason


Type: System.String

The key that is removed from the cache.

Type: System.Object

The Object item associated with the key removed from the cache.

Type: System.Web.Caching.CacheItemRemovedReason

The reason the item was removed from the cache, as specified by the CacheItemRemovedReason enumeration.

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. 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. In addition, it uses the Cache.Item property to add objects to the cache and retrieve the value of those objects. In the AddItemToCache method, it uses the Cache.Add method to add an item to the cache. To use the CacheItemRemovedCallback delegate, you must add an item to the cache with this method or the Cache.Insert method so that that ASP.NET can automatically make the proper method calls when the item is removed. The custom RemoveItemFromCache method uses the Cache.Remove method to explicitly delete the item from the cache, causing the RemovedCallback method to be invoked.

 <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), Cache.NoSlidingExpiration, CacheItemPriority.High, onRemove);

    public void RemoveItemFromCache(Object sender, EventArgs e) {
        if(Cache["Key1"] != null)
  <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"/>
  <% if (itemRemoved) {
        Response.Write("RemovedCallback event raised.");
        Response.Write("Reason: <B>" + reason.ToString() + "</B>");
     else {
        Response.Write("Value of cache key: <B>" + Server.HtmlEncode(Cache["Key1"] as string) + "</B>");

.NET Framework
Available since 1.1
Return to top