1

我有一个网站,它有一个IHttpHandler用于生成动态样式表的处理程序(实现)。它通过从会话中获取 HTML 颜色代码(基于用户所属的组织)并使用一些代码 (DotLess) 在不同位置生成具有该颜色集的样式表来实现此目的。

鉴于模板很少会改变,我认为缓存是有序的,但我当然需要使缓存依赖于我退出会话的颜色。

是否有一种基于此值进行输出缓存的简单内置方法?我知道我可以根据查询字符串和其他各种事情来做到这一点,但不确定是否可以在这样的会话值上完成。当然,另一种选择是创建我自己的缓存代码,但我宁愿不重新发明轮子......

4

1 回答 1

2

您可以为输出缓存创建一个缓存键,其中将颜色作为键的一部分......“真实”输出缓存在处理程序之前的内核级别完成,因此在处理程序级别实现可能会很棘手通过请求改变密钥的方法。

为什么不使用静态的、适当线程安全的(通过锁)字典...其中键是颜色,值是 CSS 内容?静态对象将一直存在到应用程序域终止。您可以在 Handler 本身中使用 HttpHandler 的静态字段成员来进行缓存。然后破坏所述缓存变得像清除或重新初始化静态字段成员引用一样简单。

于 2013-07-10T17:57:15.220 回答