C#读取App.config配置文件详解及代码实例
在C#开发WinForm程序时,App.config用于存储应用程序配置信息,如数据库连接字符串和自定义键值对。本文解析App.config的XML结构,并通过System.Configuration命名空间的类库,提供遍历connectionStrings和appSettings节点以及直接读取特定配置项的代码范例。
App.config文件结构与特点
App.config本质上是XML格式的文档。对于Windows桌面应用(WinForm/WPF),使用此文件;而Web应用程序则对应使用Web.config,两者的语法格式一致。其核心结构包含以下关键部分:
<configuration>:根元素,所有配置项均位于此标签之下。<connectionStrings>:系统内置节点,专门用于存放数据库连接字符串。该节点下可包含多个<add>子节点,每个子节点定义一个具体的连接。<appSettings>:通用的键值对容器,用于存储任意需要硬编码到配置中的参数。早期版本中常将其用于存储连接字符串,但现代开发更推荐将连接字符串移至专用的connectionStrings节点。
以下是一个标准的App.config内容示例:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="conn" connectionString="this is connection string"/>
</connectionStrings>
<appSettings>
<add key="key1" value="value1" />
<add key="key2" value="value2" />
</appSettings>
</configuration>
C#读取配置文件操作准备
要在C#代码中访问App.config,必须确保项目中引用了System.Configuration程序集。在Visual Studio中,可以通过“解决方案资源管理器”右键点击“引用”添加该引用。同时在代码顶部引入相应的命名空间:
using System.Configuration;
主要使用的类是ConfigurationManager,它提供了静态属性ConnectionStrings和AppSettings来分别映射配置文件的两个主要节点。
第1步:读取与遍历连接字符串 (connectionStrings)
目的:获取已配置的所有数据库连接字符串及其名称。
入口:ConfigurationManager.ConnectionStrings,返回类型为ConnectionStringSettingsCollection。
可以通过索引器循环或LINQ风格的遍历来获取数据。具体操作如下:
// 方法一:按索引循环
for (int i = 0; i < ConfigurationManager.ConnectionStrings.Count; i++)
{
string name = ConfigurationManager.ConnectionStrings[i].Name;
string connectionString = ConfigurationManager.ConnectionStrings[i].ConnectionString;
Console.WriteLine(i.ToString() + ". " + name + " = " + connectionString);
}
// 方法二:foreach遍历
foreach (ConnectionStringSettings conn in ConfigurationManager.ConnectionStrings)
{
Console.WriteLine(conn.Name + " = " + conn.ConnectionString);
}
完成状态判断:控制台输出所有配置的连接名称和对应的字符串内容。
第2步:直接获取指定连接字符串
目的:当明确知道连接字符串的名称时,直接获取其值,无需遍历。
动作:使用索引器传入名称字符串。参数:连接字符串的name属性。
// 直接获取名为 "conn" 的连接字符串
if (ConfigurationManager.ConnectionStrings["conn"] != null)
{
string connStr = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
Console.WriteLine("Get the value of the node named 'conn': " + connStr);
}
注意:若配置文件中不存在指定名称的连接字符串,索引器会抛出异常,建议在读取前进行非空判断或使用Try模式封装。
第3步:读取与遍历 appSettings
目的:获取通用配置项(Key-Value)列表。
入口:ConfigurationManager.AppSettings,返回类型为NameValueCollection。
由于NameValueCollection没有直接的枚举接口支持foreach,通常通过AllKeys属性获取所有键名数组,然后迭代取值:
string[] keys = ConfigurationManager.AppSettings.AllKeys;
for (int i = 0; i < keys.Length; i++)
{
string key = keys[i];
// 通过Key获取对应的Value
string value = ConfigurationManager.AppSettings[key];
Console.WriteLine(i.ToString() + ". " + key + " = " + value);
}
第4步:直接获取指定 appSettings 值
目的:快速读取某个特定的配置键值。 动作:使用索引器传入Key字符串。
// 直接获取 key1 的值
string val = ConfigurationManager.AppSettings["key1"];
Console.WriteLine("Get the value of the key named 'key1': " + val);
编译与运行注意事项
App.config并非直接在运行时读取源码文件,而是在项目编译后,由构建系统将App.config的内容合并生成到输出目录下的应用程序名.exe.config文件中。因此,调试或发布时,请确保读取路径指向正确的输出目录(如bin\Debug)。如果配置项需要在运行时动态修改并保存,通常涉及对.config文件的读写权限管理,但在大多数只读场景下,上述读取方式已足够。
以上就是C#读取App.config配置文件内容的详细内容,更多关于C#配置文件读取的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













