5

我正在尝试在下面执行此操作,有没有办法执行此操作,或者 web.configs 仅在运行时可用,因为我收到一条红线错误,说必须是编译时间常数?

应用设置:

  <add key="MyString" value="TheValueOfTheString"/>

代码:

   public const string MyString = ConfigurationManager.AppSettings["MyString"];
4

1 回答 1

10

问题是const的使用。const 表示该值在设计时是硬编码的。

const string MyString = "the text...";

appsettings 值直到运行时才知道,因此它不是一个常量值。相反,您可以使用静态只读值

static readonly MyString = ConfigurationManager.AppSettings["MyString"];

不同之处在于如何在编译时对值进行解释。当使用常量时,引用的是实际值,而不是变量MyString。一个static readonly值被编译为变量。

于 2012-11-28T15:21:23.160 回答