0

就像题目说的那样。我有一个提供 DAL 的 DLL,我想让它在特定实例中开始缓存。

提到的 DLL 用于 asp.net 应用程序和控制台应用程序。

我想做的是使用 System.Runtime.Caching 命名空间,但我希望在对 asp.net 环境的每个请求结束时清除缓存。关键是要确保我不会在单个请求中多次返回数据库获取相同的数据,我不是在为需要在多个请求中存活的数据寻找通用缓存机制。

在 System.Runtime.Caching 的这个特定方面,我似乎真的找不到任何东西。它在 asp.net 上下文中使用什么,有没有办法让它做到这一点?

我意识到我可以在某处使用静态成员,但我不希望那样做,因为它不是未来的证明。

4

1 回答 1

0

它全部在您制作的缓存键和有效期中。在您的示例中,您将希望提供一个滑动到期时间(如果该项目未被触及,则在经过一段时间后将其从缓存中删除)。

缓存键应该有一些会话/请求特定的 ID 作为它的一部分。

您只会基于每个请求而不是基于每个用户或每个系统进行缓存,这似乎很奇怪。您可能想探索其他形式的数据共享,例如线程本地存储。

于 2012-11-28T20:22:45.447 回答