我想在属性中指定一个参数,如下所示:
[OutputCache(Duration = GlobalSettings.GlobalVar)]
GlobalVar是一个我只定义一次的变量(不关心在哪里)。
使用配置设置无论如何都无法工作,我也无法使用某些静态类。
我收到错误: 属性参数必须是属性参数类型的常量表达式,typeof表达式或数组创建表达式
也许可以在OutputCache周围编写一个自定义包装器,但这感觉就像一个黑客。我在这里遗漏了什么?
答案 0 :(得分:6)
问题是属性值必须在编译时确定 - 它们嵌入在程序集中。这就是为什么你必须使用常量表达式(不仅仅是一个全局变量 - 真正的常量)。