如何:从 Web.config 文件读取应用程序设置
更新:2007 年 11 月
此示例从 Web.config 文件读取由 customsetting1 密钥标识的应用程序设置。appSettings 元素是字符串的 NameValueCollection 集合。使用集合元素可能会比使用其他配置元素稍微复杂一些。
若要获取根级别的 Web 配置的配置设置,应向 OpenWebConfiguration 方法传递 null。
若要更新配置设置,请使用配置对象的 Save 或 SaveAs 方法。有关更多信息,请参见 使用配置类。有关更多代码示例,请参见 AppSettingsSection 类和相关类。
此示例使用获取配置数据的非静态方法,这使得您可以从任何应用程序提取配置数据。如果您打算从代码所在的应用程序获取配置信息,请使用静态方法,这样处理速度会更快一些。有关更多信息,请参见 ASP.NET 配置 API 概述 中的“使用本地和远程配置设置”一节。
示例
Dim rootWebConfig1 As System.Configuration.Configuration
rootWebConfig1 = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(Nothing)
If (0 < rootWebConfig1.AppSettings.Settings.Count) Then
Dim customSetting As System.Configuration.KeyValueConfigurationElement
customSetting = rootWebConfig1.AppSettings.Settings("customsetting1")
If Not (Nothing = customSetting.Value) Then
Console.WriteLine("customsetting1 application string = {0}", customSetting.Value)
Else
Console.WriteLine("No customsetting1 application string")
End If
End If
System.Configuration.Configuration rootWebConfig1 =
System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(null);
if (0 < rootWebConfig1.AppSettings.Settings.Count)
{
System.Configuration.KeyValueConfigurationElement customSetting =
rootWebConfig1.AppSettings.Settings["customsetting1"];
if (null != customSetting)
Console.WriteLine("customsetting1 application string = \"{0}\"",
customSetting.Value);
else
Console.WriteLine("No customsetting1 application string");
}
编译代码
此示例需要:
根 Web.config 文件中的 appSettings 元素,如下所示:
<appSettings> <add key="customsetting1" value="Some text here"/> </appSettings>
appSettings 元素是 <configuration> 元素的直接子级,并且是 system.web 元素的对等项。
可靠编程
从 Web.config 文件的 appSettings 元素读取的值始终为 String 类型。如果指定的键在 Web.config 文件中不存在,则不会发生任何错误。而是返回空字符串。
安全性
应通过使用 Windows 安全设置限制可以读取配置文件的人士,在服务器上保护该配置文件。避免在 Web.config 文件的 appSettings 元素中存储敏感信息,如用户凭据。还要考虑对配置设置进行加密。有关更多信息,请参见使用受保护的配置加密配置信息。