使用全局设置作为属性参数

时间:2008-12-24 19:18:42

标签: parameters attributes

我想在属性中指定一个参数,如下所示:

[OutputCache(Duration = GlobalSettings.GlobalVar)]

GlobalVar是一个我只定义一次的变量(不关心在哪里)。

使用配置设置无论如何都无法工作,我也无法使用某些静态类。

我收到错误: 属性参数必须是属性参数类型的常量表达式,typeof表达式或数组创建表达式

也许可以在OutputCache周围编写一个自定义包装器,但这感觉就像一个黑客。我在这里遗漏了什么?

1 个答案:

答案 0 :(得分:6)

问题是属性值必须在编译时确定 - 它们嵌入在程序集中。这就是为什么你必须使用常量表达式(不仅仅是一个全局变量 - 真正的常量)。