2008-12-24 69 views
3

我想在一個屬性來指定一個參數,像這樣:使用全局設置爲屬性參數

[OutputCache(Duration = GlobalSettings.GlobalVar)] 

哪裏GlobalVar是我定義只有一次(不關心)的一個變量。

無論如何,使用配置設置無法正常工作,我也無法使用某個靜態類來處理它。

我得到的錯誤: 的屬性參數必須是常量表達式的typeof屬性參數類型的表達式或數組創建表達式

也許是可以寫身邊的OutputCache一個定製的包裝,而是那種感覺像黑客。我在這裏錯過了什麼?

+0

請參閱http://stackoverflow.com/questions/6665187/how-to-set-dynamic-value-in-my-attribute/6665254#6665254 – 2017-01-01 00:54:40

回答

6

問題是,屬性值必須在編譯時確定 - 它們嵌入程序集中。這就是爲什麼你必須使用一個常量表達式(不只是一個全局變量 - 真正的常量)。