在页面上给出outputcache
这样的指令
<%@ OutputCache Duration="3600" VaryByParam="Id" %>
如何判断代码中的VaryByParam
值是什么。
HttpContext.Current.Response.Cache.VaryByParams
对象包含私有_parameters
字典和内部IsVaryByStar
属性,但没有反映到我不愿意做的对象中,我无法访问它们。是否有任何标准方法可以发现在特定请求中设置了哪些outputcache指令?
答案 0 :(得分:1)
我不相信会有另一种枚举参数的方法。除了枚举参数之外,您可能还需要注意通配符("*"
)参数。所以我认为最简单的方法是使用反射。
另外,我不确定需要这种要求的确切用例。一些替代方法可能适用于您的要求,也可能不符合您的要求
Response.Cache.Item
将为所有参数返回true)。可能的替代方法是通过从基页类引入抽象方法来强制页面提供其缓存参数。