.net MemoryCache-删除项目时通知

本文关键字:通知 删除项目 MemoryCache- net | 更新日期: 2023-09-27 17:57:34

我使用的是.net 4.0和c#的.net内存缓存,我希望在删除项目时通知我的应用程序(这样我就可以将其写入日志文件或通知UI,该项目已被删除)。

有没有办法这样做。

我使用的是System.Runtime.Caching.MemoryCache,而不是System.Web.Caching

EDIT:如果使用System.Runtime.Caching.MemoryCache,则在CacheItemPolicy对象上有一个回调用于删除,也有一个用于更新。

myMemoryCache.Set("key", null, new CacheItemPolicy() {RemovedCallback = new CacheEntryRemovedCallback(CacheRemovedCallback) /* your other parameters here */});
public void CacheRemovedCallback(CacheEntryRemovedArguments arguments)
{
    // do what's needed
}

初始答案

System.Web.Caching命名空间的.net缓存中插入数据时,您可以选择设置回调以通知删除

Cache.Insert("data", "", null, DateTime.Now.AddMinutes(1), System.Web.Caching.Cache.NoSlidingExpiration, CacheItemPriority.High, new CacheItemRemovedCallback(CacheRemovedCallback));
public string CacheRemovedCallback(String key, object value, System.Web.Caching.CacheItemRemovedReason removedReason)
{
    // here you can log, renew the value, etc...
}

还有一个Insert方法的签名,它允许您指定一个回调,以便在项目被删除之前通知

.net MemoryCache-删除项目时通知