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

Jow*_*wen 4 parameters attributes

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

[OutputCache(Duration = GlobalSettings.GlobalVar)]
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

Jon*_*eet 6

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