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