.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
方法的签名,它允许您指定一个回调,以便在项目被删除之前通知