从 ObjectCache 获取绝对过期事件

Get Absolute Expiration event from ObjectCache

我正在使用 ObjectCache 对象作为 MemoryCache.Default (System.Runtime.Caching) 并且我的策略包含 AbsoluteExpiration。

例如:

ObjectCache cache = MemoryCache.Default
cahce.Add(key, reading, new CacheItemPolicy { AbsoluteExpiration = DateTimeOffset.Now.AddSeconds(20)});

我想在对象被移除之前保存它们。

是否可以在项目从缓存中删除之前捕获过期事件?

使用Add函数在MemoryCache中添加Entry时,可以添加CacheItemPolicy.

这个 class 有这个字段:

     private DateTimeOffset _absExpiry;
        private TimeSpan _sldExpiry;
        private Collection<ChangeMonitor> _changeMonitors;
        private CacheItemPriority _priority;
        private CacheEntryRemovedCallback _removedCallback;
        private CacheEntryUpdateCallback _updateCallback;

你需要的是_removedCallback.

源代码:here and here.