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

Parameters 使用全局设置作为属性参数,parameters,attributes,Parameters,Attributes,我想在属性中指定一个参数,如下所示: [OutputCache(Duration = GlobalSettings.GlobalVar)] 其中GlobalVar是一个我只定义过一次的变量(不管在哪里) 使用配置设置无论如何都不起作用,我也无法让它与某个静态类一起工作 我得到一个错误: 属性参数必须是常量表达式、typeof表达式或属性参数类型的数组创建表达式 也许可以在OutputCache周围编写一个自定义包装器,但这感觉像是一种黑客行为。我是不是遗漏了什么 问题是属性值必须在编译时确定-

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

[OutputCache(Duration = GlobalSettings.GlobalVar)]
其中GlobalVar是一个我只定义过一次的变量(不管在哪里)

使用配置设置无论如何都不起作用,我也无法让它与某个静态类一起工作

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


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

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

请参见