我有一项服务,我想在其中使用 MemoryCache,但是,我的要求之一是我需要能够手动清除所述 MemoryCache,而无需停止服务。
目前我们正在使用企业库中的 CacheManager(使用独立存储,所以我认为它在内存中,然后在需要时转储到文件),我们通过删除文件手动清除缓存。关于如何使用新的缓存库做类似事情的任何想法?
谢谢!
我有一项服务,我想在其中使用 MemoryCache,但是,我的要求之一是我需要能够手动清除所述 MemoryCache,而无需停止服务。
目前我们正在使用企业库中的 CacheManager(使用独立存储,所以我认为它在内存中,然后在需要时转储到文件),我们通过删除文件手动清除缓存。关于如何使用新的缓存库做类似事情的任何想法?
谢谢!
听起来您当前使用企业库的缓存具有文件系统依赖性。您可以通过将HostFileChangeMonitor与每个缓存项相关联来对 MemoryCache 执行相同的操作。当监控的文件在磁盘上发生变化时,缓存项将被清除。
无法清除服务外部的缓存,因为它绑定到 AppDomain。您需要自己实现一个清除缓存的入口点。
之后,只需处理内存缓存并创建一个新缓存。