C#的配置文件App.config使用总结

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

首先,先说明,我使用的app.config 配置文件的格式如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    
    <add key="ServerIP" value="127.0.0.1"></add>
    
    <add key="DataBase" value="WarehouseDB"></add>

    <add key="user" value="sa"></add>

    <add key="password" value="sa"></add>

  </appSettings>
</configuration>

因此,对于配置文件的读取方式如下:(依然由上面的文件举一个简单的例子)

static string str = "Data Source=" + System.Configuration.ConfigurationManager.AppSettings["ServerIP"] + ";Initial Catalog =" + System.Configuration.ConfigurationManager.AppSettings["DataBase"] + "; User ID=" + System.Configuration.ConfigurationManager.AppSettings["user"] + "; Password=" + System.Configuration.ConfigurationManager.AppSettings["password"] ;

这样,便从配置文件中读取出了所需要的信息,组成了一组用于连接数据库的字符串。

对于修改配置文件 的话,

很多文章都介绍用下面的方法修改app.config中的值:

Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings["DB_UID"].Value = "demo";
config.Save(ConfigurationSaveMode.Full);

事实证明这种做法是不可行的。虽然程序运行时的值已经被修改。但是打开app.config查看,会看到值仍然没有被改动。如果重启程序,就会使用以前的旧值。用这种方法只可以读取值。不能写入或者修改值。

注意,正确的做法是,把配置文件按照普通的xml文件来进行修改,否则,经常出现的问题就是你所修改的东西其实最后根本没有写入文件!最后还是修改失败!

当作普通的xml文件读取的话,首先就要知道怎么寻找文件的路径。我们知道一般配置文件就在跟可执行exe文件在同一目录下,且仅仅在名称后面添加了一个.config 因此,可以用Application.ExecuteablePath+".cofig"的方式来获得,不过更加推荐使用AppDomain.CurrentDomain.SetupInformation.ConfigurationFile这句话来直接获取当前程序的配置文件的位置,具体原因,后面再叙述。

这里给出我常用的操作函数。

using System.Xml;
//第一个参数是xml文件中的add节点的value,第二个参数是add节点的key
private void SaveConfig(string ConnenctionString, string strKey)
{
            XmlDocument doc = new XmlDocument();
            //获得配置文件的全路径
            string strFileName = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;
            // string  strFileName= AppDomain.CurrentDomain.BaseDirectory + "\\exe.config";
            doc.Load(strFileName);
            //找出名称为“add”的所有元素
            XmlNodeList nodes = doc.GetElementsByTagName("add");
            for (int i = 0; i < nodes.Count; i++)
            {
                //获得将当前元素的key属性
                XmlAttribute att = nodes[i].Attributes["key"];
                //根据元素的第一个属性来判断当前的元素是不是目标元素
                if (att.Value == strKey)
                {
                    //对目标元素中的第二个属性赋值
                    att = nodes[i].Attributes["value"];
                    att.Value = ConnenctionString;
                    break;
                }
            }
            //保存上面的修改
            doc.Save(strFileName);
            System.Configuration.ConfigurationManager.RefreshSection("appSettings");
}

现在回过头还是看上面的这个函数,看它的最后一行,它的作用是什么?

查找msdn文档可以发现微软出于性能考虑,对配置文件App.config采用了缓存策略,因此,尽管上面的函数确实在磁盘文件中修改了节点的值,当时,当用前面的那个函数读取的时候,会依然得到原来的那个值,仿佛没有修改一样!所以,必须使用这么句话,进行一遍刷新,强制要求程序下一次读取的时候,从磁盘文件读取!

好了,现在使用Visual Studio写C#程序的童鞋应该都遇到了一个蛋疼的问题,就是在debug时,明明在程序中修改了配置文件,可是下次重新执行程序的时候,发现程序根本没有发生变化,打开与exe文件相对应的config文件查看,发现文件根本没有变化!!!!明明就是当作xml文件来操作的,怎么会这样?!

其实这就涉及VS的运行机制问题了,细心的童鞋会在exe文件的同目录下,发现有一个与之对应的vshost.exe,以及vshost.exe.config 文件,当打开这里的这个config文件后会发现,在这里面的xml文件的值发生了变化!对滴~VS无论在Debug还是Release下,运行的程序都是这个带有vshost的程序,修改的也是这个程序对应的config。当时,当程序刚刚启动的时候,却是读取的原来与exe文件对应的config文件,将这个config文件内容替换原来与vshost.exe对应的config里面内容,这也就是为什么每次重新开程序后恢复原状的原因。

由于程序在VS里面调试的时候,运行的程序与直接去bin文件夹运行的程序不一样,所以,更推荐使用AppDomain.CurrentDomain.SetupInformation.ConfigurationFile来获取当前运行程序的配置文件。

当然啦,这一点差异不要着急,等程序调试完毕后,以后,程序一般就是从文件夹手动启动的啦,这个时候,就没有上面的那么多问题的了。一切会恢复正常!


c#读取配置文件 程序的App.config 读取配置文件,首先得引入configuration.dll 如:using System.Configuration; 1. 配置文件app.config---appSettings                 C# 源代码读取:         string dbaUserName = ConfigurationManager.AppSetti 阅读详情

相关推荐

C# 配置文件app.config 和 web.config 大冒险

app.config你可以定义自己的配置节,这需要你先编写一个配置节处理器类,然后在配置文件中声明这个节。示例// 定义一个配置节处理器类// 在配置文件中声明这个节恭喜你!我们已经成功地探索了 C#app.config和web.config配置文件的世界。这个过程可能看起来有点复杂,但是通过分解成小步骤,一切就变得简单多了。如果你跟着本文一步步操作,相信你现在已经有足够的信心去配置自己的 C# 应用了!如果你有任何疑问,或者想要了解更多关于 C# 配置文件的高级用法,请随时留言提问。

java专栏 1132

C#配置文件App.config.settings

C#配置文件App.config.settings C#的Winform下的配置文件可以分为两类:设置文件(.settings)和应用程序配置文件(.config); 应用程序配置文件可以分成:App.config和自定义的.config配置文件 备注:C#下的配置文件都是标准的XML文件。 1. App.config 1.1 创建 创建winform项目之后会自动生成App.config文件,如果默认没有,可以在项目上右键–新建项–应用程序配置文件,命名为App.config。 <?xml ve

yizhou2010的专栏 1万+

C#读写App.config的工具类

C#读写App.config的工具类

C# app.config的配置方法及使用技巧

1.app.config配置文件 应用程序配置文件是标准的 XML 文件,XML 标记和属性是区分大小写的。 也是可以按需要更改的,对于一些在程序中需要使用的链接,地址,等常量,开发人员可以使用配置文件来设置,后期只用更改配置文件中的配置,而不必重编译应用程序。 配置文件的根节点是configuration。我们经常访问的是appSettings,它是由.Net预定义配置节,“配置节”可以理解为进...

MelanceXin的博客 4万+

C# Winform 配置文件App.config

C#中,配置文件很常用,ASP.NET 和 Winform 名称不同,用法一样,如下图config 文件通常用来存储一些需要修改的数据,比如用户名密码,连接数据库的IP地址等,而不是在代码中写死。有人可能会问,那我自己自定义一个配置文件也行,为什么要用它这个?区别当然有,微软自己封装的读取和写入会更简单一些,你自己封装的,就要自己去封装测试,但最终的效果其实是一样的。

熊思雨的博客 1万+

C#配置文件App.config使用操作

一丶创建一个App.config 1.右键项目->添加->新建项 2.选择应用程序配置文件 创建后会在项目底下多出一个App.config文件 在App.config内下添加内容 // App.config里的内容 <?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <add key="test" value="This is value" >

qq_42698957的博客 5228

c#配置文件ini以及App.config

此功能只是实现c#配置文件读取到窗口页面的一些控件上显示方便后期的使用

klous_students的博客 873

C# 配置文件App.config使用操作

应用程序配置文件是标准的 XML 文件,XML 标记和属性是区分大小写的。它是可以按需要更改的,开发人员可以使用配置文件来更改设置,而不必重编译应用程序。 配置文件的根节点是configuration。我们经常访问的是appSettings,它是由.Net预定义配置节。我们经常使用配置文件的架构是象下面的形式。 先大概有个印象,通过后面的实例会有一个比较清楚的认识。下面的“配置节”可以理解为

起个名字好难啊 8万+

C#中动态读写App.config配置文件

c#,WinForm中读写配置文件App.config   2010-04-24 16:00:49|  分类: C# |  标签: |字号大中小 订阅 在.Net中提供了配置文件,让我们可以很方面的处理配置信息,这个配置是XML格式的。

3195

C#配置文件App.config使用方法

app.config 配置文件的格式如下: <?xmlversion="1.0"encoding="utf-8"?> <configuration> <appSettings> <addkey="ServerIP"value="127.0.0.1"></add> ...

eben_8292的博客 557

C# 读写App.config配置文件

一、C#项目中添加App.config配置文件   在控制台程序中,默认会有一个App.config配置文件,如果不小心删除掉,或者其他程序需要配置文件,可以通过添加得到。   添加步骤:右键项目名称,选择“添加”→“添加新建项”,在出现的“添加新项”对话框中,选择“添加应用程序配置文件”,默认的文件名称为“ App.config ”,单击“确定”。    二、配置文件格式   新...

weixin_30631587的博客 930

C# 引用配置文件app.config

配置文件app.config 1.app.config内参数的增加 <connectionStrings> <add name="constr" connectionString="Data Source=.;Initial Catalog=****;USER=****;PASSWORD=****"/> </connectionStrings> 添加引用System.Configuration 获取参数字符串 string connectstr= C

seven_apple的博客 714

C# winform 修改app.config配置文件的实现类

[code=C#]    class Configuration    {        public static string fileName=System.IO.Path.GetFileName(Application.ExecutablePath);        public static bool addSetting(string key,string value){     

fsict的专栏 1800

C# 通过ConfigurationManager读写配置文件App.Config

App.configC#中最常用的配置文件类型。 通常位于项目的根目录中,以 XML 格式存储配置信息。App.config 文件可以包含多个配置节,如 appSettings、connectionStrings、system.web 等,用于存储不同的配置信息。如图资源管理器中引用中可以看到它的身影。它是引用.net库中的System.Configuration.dll文件。

C/C#、Android driver、STM32、Linux等等。 1579

C# 读写App.config配置文件的方法

原文地址:http://blog.xieyc.com/csharp-read-and-write-configuration-file-app-config/

阿斌(Ben)的博客 1127

c# mysql app.config_C# 操作配置文件 App.config的详解

C# 操作配置文件 App.config的详解using System;using System.Collections.Generic;using System.Text;using System.Configuration;namespace Schwann.CommLibrary{public class ConfigHelper{/// /// 根据键值获取配置文件/// /// 键值/...

weixin_42659791的博客 268

c#,WinForm中读写配置文件App.config

.Net中提供了配置文件,让我们可以很方面的处理配置信息,这个配置是XML格式的。而且.Net中已经提供了一些访问这个文件的功能。1、读取配置信息下面是一个配置文件的具体内容: 《 !-- 此处显示用户应用程序和配置的属性设置。--》 《!-- 示例: --》 《 add key="coal" value="一二三" /》 《add key="inWellTime"

thinker28754的专栏 2564
上一篇: Codeblocks下配置Opencv
下一篇: C语言实现radon变换
celte
博客等级 码龄15年 40粉丝 74原创
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值