0

0

C# app.config文件怎么读写 .NET应用程序配置XML文件操作

幻夢星雲

幻夢星雲

发布时间:2026-01-27 01:05:33

|

535人浏览过

|

来源于php中文网

原创

.NET Framework中应使用ConfigurationManager读取app.config,写入需调用OpenExeConfiguration并RefreshSection;禁用XML API直接操作,推荐JSON配置或Properties.Settings。

c# app.config文件怎么读写 .net应用程序配置xml文件操作

在 .NET Framework 应用程序中,app.config(编译后变为 [AppName].exe.config)是标准的客户端配置文件,用于存储连接字符串、应用设置、自定义配置节等。它本质是 XML 文件,但不能直接用 XmlDocument 或 XDocument 随意读写——因为运行时 .NET 会缓存配置,且写入需考虑权限、多线程、配置节只读性等限制。

读取 app.config 中的配置项

推荐使用 ConfigurationManager(.NET Framework)或 ConfigurationBuilder(.NET Core/5+)。本文聚焦传统 .NET Framework 场景:

  • 读取 :用 ConfigurationManager.AppSettings["Key"],例如:

    代码中:string url = ConfigurationManager.AppSettings["ApiUrl"]; // 返回字符串
  • 读取 :用 ConfigurationManager.ConnectionStrings["MyDb"],返回 ConnectionStringSettings 对象,其 .ConnectionString 属性才是实际连接字符串。
  • 读取自定义配置节:需先定义类继承 ConfigurationSection,再在 config 中注册 ,最后用 ConfigurationManager.GetSection("sectionName") 获取强类型对象。

运行时修改 app.config 并保存(谨慎操作)

默认情况下,app.config 是只读的,且修改后不会自动生效于当前运行实例(已加载的配置不会刷新)。如确需写入(如保存用户偏好),应操作 运行时生成的 .config 文件(即 [AppName].exe.config),并注意以下要点:

  • 必须使用 ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None) 获取可写的 Configuration 对象;
  • 仅支持修改 (其他节可能被标记为只读);
  • 调用 config.Save() 后,需手动调用 ConfigurationManager.RefreshSection("appSettings") 才能让后续读取生效;
  • 写入操作需要对 config 文件所在目录有写权限(尤其在 Program Files 下常失败,建议避免部署到受限路径)。

示例(更新 appSettings):

var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings["Theme"].Value = "Dark";
config.Save();
ConfigurationManager.RefreshSection("appSettings"); // 刷新缓存

不推荐但常见误区:直接用 XML API 操作 app.config 文件

有人尝试用 XDocument.Load("app.config") 修改并保存——这看似可行,但存在严重问题:

DeepL Write
DeepL Write

DeepL推出的AI驱动的写作助手,在几秒钟内完善你的写作

下载
  • 修改的是源项目中的 app.config,而非运行时实际加载的 [AppName].exe.config(后者在输出目录);
  • 绕过 .NET 配置系统,导致 ConfigurationManager 缓存与磁盘文件不一致;
  • 无法触发配置刷新,新值对当前进程不可见;
  • 多线程下易引发文件锁或写入冲突。

除非你明确知道自己在做什么(比如构建配置生成工具),否则不要这么做。

替代方案:更现代、更安全的做法

对于新项目或需要频繁读写配置的场景,建议迁移到更灵活的方式:

  • 使用 System.Text.JsonNewtonsoft.Json 管理独立 JSON 配置文件(如 settings.json),完全自主控制读写逻辑;
  • 用户级设置可用 Properties.Settings.Default(可视化设计器生成),它会自动保存到 %LocalAppData% 下,无需权限且线程安全;
  • .NET Core/5+ 推荐统一用 IConfiguration + ConfigurationBuilder,支持 JSON、INI、环境变量等多种源,且天然支持重载(reloadOnChange: true)。

基本上就这些。核心原则是:尊重 .NET 配置系统的生命周期和缓存机制,别绕过它硬改 XML。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

418

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

535

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

311

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

76

2025.09.10

string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

421

2023.08.02

pdf怎么转换成xml格式
pdf怎么转换成xml格式

将 pdf 转换为 xml 的方法:1. 使用在线转换器;2. 使用桌面软件(如 adobe acrobat、itext);3. 使用命令行工具(如 pdftoxml)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1897

2024.04.01

xml怎么变成word
xml怎么变成word

步骤:1. 导入 xml 文件;2. 选择 xml 结构;3. 映射 xml 元素到 word 元素;4. 生成 word 文档。提示:确保 xml 文件结构良好,并预览 word 文档以验证转换是否成功。想了解更多xml的相关内容,可以阅读本专题下面的文章。

2091

2024.08.01

xml是什么格式的文件
xml是什么格式的文件

xml是一种纯文本格式的文件。xml指的是可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。想了解更多相关的内容,可阅读本专题下面的相关文章。

1051

2024.11.28

拼多多赚钱的5种方法 拼多多赚钱的5种方法
拼多多赚钱的5种方法 拼多多赚钱的5种方法

在拼多多上赚钱主要可以通过无货源模式一件代发、精细化运营特色店铺、参与官方高流量活动、利用拼团机制社交裂变,以及成为多多进宝推广员这5种方法实现。核心策略在于通过低成本、高效率的供应链管理与营销,利用平台社交电商红利实现盈利。

31

2026.01.26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
WEB前端教程【HTML5+CSS3+JS】
WEB前端教程【HTML5+CSS3+JS】

共101课时 | 8.5万人学习

JS进阶与BootStrap学习
JS进阶与BootStrap学习

共39课时 | 3.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号