4

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

[OutputCache(Duration = GlobalSettings.GlobalVar)]

其中 GlobalVar 是我只定义一次的变量(不在乎在哪里)。

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

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

也许可以在 OutputCache 周围编写一个自定义包装器,但这感觉就像是 hack。我在这里错过了什么吗?

4

1 回答 1

9

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

于 2008-12-24T19:27:30.307 回答