我想从MemoryCache删除所有项目。
我已经尝试过的东西:
var listDBCalls = ((FixedSizedQueue<DalCacheDto>)MemoryCache.Default.Get($"DAL_CACHE_{HttpContext.Current?.User?.Identity?.Name}"))?.ToList();
listDBCalls.clear();
如果我在调试器中观看此代码,则表明listDBCalls确实为空。但是,再次调用:
((FixedSizedQueue<DalCacheDto>)MemoryCache.Default.Get($"DAL_CACHE_{HttpContext.Current?.User?.Identity?.Name}"))?.ToList()
告诉我所有物品仍然在那里。这是为什么?
避免使用默认的内存缓存来进行更多控制。创建您自己的内存缓存(例如,作为静态类的静态属性),当您需要擦除它时,您可以简单地创建一个新的来代替旧的缓存。不要忘记调用dispose方法。
似乎要走的路:如何清除MemoryCache?
编辑当我阅读您的代码时,不确定要做什么。如果要删除特定条目(看起来是这种情况),可以使用remove方法。
MemoryCache.Default.Remove($"DAL_CACHE_{HttpContext.Current?.User?.Identity?.Name}")
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句