我在.NET 4.6.2,MVC 5.缓存正在使用MemoryCache
。我有一个完全写入控制器的缓存,完成了项目删除的回调,但后来我记得控制器是在请求范围内创建的。我认为这意味着我的回调不会被触发,因为控制器已经被处理掉了。
处理此问题的最佳方法是什么?我知道我可以从控制器查询缓存,这不是问题,但我的问题是我应该如何使用回调来处理缓存。
我唯一能想到的就是在后台运行以管理缓存的单例服务。这意味着我可以将它注入Application_Start
并处理初始化,但我总是担心使用单例。
我应该如何处理MVC 5中的缓存回调?在我看来它不会在控制器内部工作,因为控制器是按请求创建的。
答案 0 :(得分:0)
我最终使用的方法略有不同。缓存仍在控制器中处理,但我删除了回调。控制器尝试访问缓存的数据,如果它不存在则重新填充。这解决了我仍然能够利用缓存时出现的问题。