C# 通过指定路径读取配置文件实现方法

竹里
竹里
发布时间:2026-10-14| 2人浏览过
原创

C# 默认使用程序运行目录下的配置文件(如 app.config)。若需读取特定路径的非标准配置文件,可使用 ExeConfigurationFileMap 类进行映射,并通过 ConfigurationManager.OpenMappedExeConfiguration 打开该配置对象,从而读取其中的 connectionStrings 和 appSettings 等数据节点。

结果与目标

本文旨在演示如何在 C# 代码中硬编码或通过逻辑获取一个绝对路径,并准确提取该路径下 .config 文件中的数据库连接字符串和应用程序键值对,适用于非标准配置路径的场景。

准备条件

  1. 目标配置文件: 假设存在一个名为 App1.config 的文件,位于 F: 盘根目录下(根据示例路径)。
  2. 命名空间引用: 确保项目中已添加对 System.Configuration.dll 的引用,并在代码顶部引入 System.Configuration 命名空间。
  3. 文件内容结构: 配置文件需包含标准的 connectionStrings 和 appSettings 部分。

第1步:创建配置映射对象 (ExeConfigurationFileMap)

目的: 定义要读取的配置文件所在的具体物理路径。

操作: 实例化 ExeConfigurationFileMap 类,并将其 ExeConfigFilename 属性设置为目标文件的完整路径。

// 指定配置文件路径
ExeConfigurationFileMap map = new ExeConfigurationFileMap();
map.ExeConfigFilename = @"F:\App1.config";

注意:路径前加 @ 符号表示逐字字符串,避免转义字符冲突;Windows 路径中建议使用反斜杠 \ 或双正斜杠 //。

第2步:打开并加载配置 (OpenMappedExeConfiguration)

目的: 将映射对象转换为实际可用的 Configuration 对象。

操作: 调用 ConfigurationManager.OpenMappedExeConfiguration 方法,传入上一步创建的 map 对象以及 ConfigurationUserLevel.None(表示不使用用户级别配置,读取机器级或默认配置)。

// 加载指定路径的配置
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);

第3步:读取关键配置信息

目的: 从已加载的配置中提取具体数值。

操作: 分别通过 ConnectionStrings 和 AppSettings 集合按名称索引读取数据。

// 读取连接字符串 "connStr"
string connstr = config.ConnectionStrings.ConnectionStrings["connStr"].ConnectionString;
Console.WriteLine(connstr);

// 读取应用设置 "key"
string key = config.AppSettings.Settings["key"].Value;
Console.WriteLine(key);

排错与注意事项

  • 文件权限问题: 如果程序没有读取 F: 盘或特定文件的权限,会抛出 ConfigurationErrorsException。请确保运行账户具备相应读权限。
  • 空引用检查: 如果配置文件中不存在名为 "connStr" 的连接字符串或 "key" 的设置,直接访问可能会返回 null。建议在工业级代码中加入判空逻辑。
  • DLL 引用遗漏: 编译时若报错“找不到类型 System.Configuration”,请确认项目已正确引用 System.Configuration.dll。
  • 安全提醒: 硬编码外部路径可能带来安全风险。生产环境中建议从注册表、环境变量或专用密钥管理服务中获取配置文件路径。

简要总结

通过 ExeConfigurationFileMap 映射特定路径,配合 ConfigurationManager.OpenMappedExeConfiguration 即可突破默认配置限制,实现对任意位置 .config 文件的精准读取。以上就是C#读取指定路径配置文件方法的详细内容,更多关于C#配置管理技巧的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。