我正在尝试在下面执行此操作,有没有办法执行此操作,或者 web.configs 仅在运行时可用,因为我收到一条红线错误,说必须是编译时间常数?
应用设置:
<add key="MyString" value="TheValueOfTheString"/>
代码:
public const string MyString = ConfigurationManager.AppSettings["MyString"];
我正在尝试在下面执行此操作,有没有办法执行此操作,或者 web.configs 仅在运行时可用,因为我收到一条红线错误,说必须是编译时间常数?
应用设置:
<add key="MyString" value="TheValueOfTheString"/>
代码:
public const string MyString = ConfigurationManager.AppSettings["MyString"];
问题是const的使用。const 表示该值在设计时是硬编码的。
const string MyString = "the text...";
appsettings 值直到运行时才知道,因此它不是一个常量值。相反,您可以使用静态只读值
static readonly MyString = ConfigurationManager.AppSettings["MyString"];
不同之处在于如何在编译时对值进行解释。当使用常量时,引用的是实际值,而不是变量MyString
。一个static readonly
值被编译为变量。