如何清除正在运行的Windows服务的System.Runtime.Caching.MemoryCache而不停止服务?

时间:2012-12-13 21:38:34

标签: .net caching service memorycache

我有一个服务,我想使用MemoryCache,但是,我的一个要求是我需要能够在不停止服务的情况下手动清除所述MemoryCache。

目前我们正在使用企业库中的CacheManager(使用独立存储,所以我认为它在内存中,然后在需要时转储到文件中),我们通过删除文件手动清除缓存。关于如何使用新的缓存库进行类似操作的任何想法?

谢谢!

2 个答案:

答案 0 :(得分:2)

听起来您使用Enterprise Library的当前缓存具有文件系统依赖性。您可以通过将HostFileChangeMonitor与每个缓存项相关联来对MemoryCache执行相同的操作。当受监视文件在磁盘上发生更改时,将清除缓存项目。

答案 1 :(得分:0)

无法清除服务之外的缓存,因为它已绑定到AppDomain。您需要自己实现清除缓存的入口点。

之后,只需Dispose内存缓存并创建一个新缓存。