我想在属性中指定一个参数,如下所示:
[OutputCache(Duration = GlobalSettings.GlobalVar)]
Run Code Online (Sandbox Code Playgroud)
其中GlobalVar是一个我只定义一次的变量(不关心在哪里).
使用配置设置无论如何都无法工作,我也无法使用某些静态类.
我得到错误: 属性参数必须是属性参数类型的常量表达式,typeof表达式或数组创建表达式
也许可以在OutputCache周围编写一个自定义包装器,但这感觉就像一个黑客.我在这里遗漏了什么?
有办法做到以下几点吗?我看到属性参数必须是一个常量表达式,那么我将如何解决这个问题呢?如果我不想使用绑定将某些属性加载到datagridview中,那么下一个最佳替代方案是什么?
class TestObj
{
private bool isBrowsable = false;
[Browsable(isBrowsable)]
public string String1
{
get
{
return "Foo";
}
}
[Browsable(isBrowsable)]
public string String2
{
get
{
return "Baz";
}
}
}
Run Code Online (Sandbox Code Playgroud)