2012-12-13 127 views
0

我有一个服务,我想使用MemoryCache,但是,我的一个要求是我需要能够手动清除所述MemoryCache,而不停止服务。如何清除正在运行的Windows服务的System.Runtime.Caching.MemoryCache而不停止服务?

目前我们正在使用从企业库中的CacheManager(使用独立存储区,所以我认为这是在内存中,然后转储在需要时提交),我们通过删除文件手动清除缓存。任何关于如何使用新的缓存库来做类似的事情的想法?

谢谢!

回答

2

这听起来像使用企业库您的当前缓存有文件系统的依赖。您可以通过将HostFileChangeMonitor与每个缓存项目关联来对MemoryCache执行相同的操作。当受监控的文件在磁盘上发生变化时,缓存项目将被清除。

0

这是不可能清除您的服务之外缓存,因为它绑定到AppDomain中。您需要自行实施清除缓存的入口点。

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