2012-12-13 58 views
0

我有一個服務,我想使用MemoryCache,但是,我的一個要求是我需要能夠手動清除所述MemoryCache,而不停止服務。如何清除正在運行的Windows服務的System.Runtime.Caching.MemoryCache而不停止服務?

目前我們正在使用從企業庫中的CacheManager(使用獨立存儲區,所以我認爲這是在內存中,然後轉儲在需要時提交),我們通過刪除文件手動清除緩存。任何關於如何使用新的緩存庫來做類似的事情的想法?

謝謝!

回答

2

這聽起來像使用企業庫您的當前緩存有文件系統的依賴。您可以通過將HostFileChangeMonitor與每個緩存項目關聯來對MemoryCache執行相同的操作。當受監控的文件在磁盤上發生變化時,緩存項目將被清除。

0

這是不可能清除您的服務之外緩存,因爲它綁定到AppDomain中。您需要自行實施清除緩存的入口點。

之後,只需Dispose內存緩存,並創建一個新的。