C# 配置文件读取与修改

摘要:
123456789101112134////<summary˃///更新配置文件信息//////<paramname=“name”>配置文件字段名称//˂paramname=“Xvalue”>值privatevoidUpdateConfig{XmlDocumentdoc=newXmlDocument();doc.Load;XmlNodenode=doc.SelectSingleNode;XmlElementele=node;ele.SetAttribute;doc.Save;}向配置文件插入值:?12345678910111213141516171819202122232425/////配置文件的appKey节点写入信息AppValue以保存设置//////节点名称//值PrivatevoidSetValue{XmldocumentxDoc=newXmlDocument(); x文件。负载XmlNodexNode;XmlElementxElem1;XmlElementxElem2;xNode=xDoc。选择单节点;xElem1=x节点。选择单节点;如果(xNode Elem1!=null)xElem1.SetAttribute;否则{xElem2=xdoc.CreateElement;xElem2.SetAttribute;xElem2/SetAttribute;xNode.AppendChild;}x文件。保存;}新方法:系统。配置配置设置。AppSettings[“Key”];但现在FrameWork2.0已明确表示该属性已过时。建议将其更改为ConfigurationManager或WebConfigurationManager。AppSettings属性是只读的,不支持修改属性值。但是,要调用ConfigurationManager,必须首先添加对system.config的引用。dll程序集。添加引用后,可以使用Stringstr=ConfigurationManager。AppSettings[“Key”]以获取相应的值。请记住,应用程序需要刷新节点
C# 配置文件读取与修改
 

配置文件在很多情况下都使用到, 配置文件分为两种 一种是应用程序的配置文件, 一种是web的配置文件.

两种配置文件最大的区别是web的配置文件更新之后会实时更新, 应用程序的配置文件不会实时更新.

更新应用程序的配置文件之后需刷新

ConfigurationManager.RefreshSection("appSettings");// 刷新命名节,在下次检索它时将从磁盘重新读取它。
ConfigurationSettings也存在这个问题, 但是我还不知道怎么刷新节点, 呵呵.
旧方法: 各位看官最好使用下面”新方法”

配置文件:

<configuration>
  <appSettings>
    <add key="name" value="我是远程服务器"/>
  </appSettings>
</configuration>

后台程序值得读取:

string s=System.Configuration.ConfigurationSettings.AppSettings["name"];

修改配置文件的值:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/// <summary>
/// 更新配置文件信息
/// </summary>
/// <param name="name">配置文件字段名称</param>
/// <param name="Xvalue">值</param>
privatevoidUpdateConfig(stringname,stringXvalue)
{
    XmlDocument doc = newXmlDocument();
    doc.Load(Application.ExecutablePath + ".config");
    XmlNode node = doc.SelectSingleNode(@"//add[@key='"+name+"']");
    XmlElement ele = (XmlElement)node;
    ele.SetAttribute("value", Xvalue);
    doc.Save(Application.ExecutablePath + ".config");
}

向配置文件插入值:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
///<summary>  
///向.config文件的appKey结写入信息AppValue   保存设置  
///</summary>  
///<param name="AppKey">节点名</param>  
///<param name="AppValue">值</param>
Private voidSetValue(String AppKey,String AppValue)
{
    Xmldocument xDoc=newXmlDocument();
    xDoc.Load(System.Windows.Forms.Application.ExecutablePath+”.config”);
    XmlNode xNode;
    XmlElement xElem1;
    XmlElement xElem2;
    xNode=xDoc.SelectSingleNode(“//appSettings”);
    xElem1=(XmlElement)xNode.SelectSingleNode(“//add[@key=’”+AppKey+”’]”);
    if(xElem1!=null)
    xElem1.SetAttribute(“value”,AppValue);
    else
    {
        xElem2=xdoc.CreateElement(“add”);
        xElem2.SetAttribute(“key”,AppKey);
        xElem2.setAttribute(“value”,AppValue);
        xNode.AppendChild(xElem2);
    }
    xDoc.Save(System.Windows.Forms.Application.ExecutablePath+”.config”);
}
新方法:

System.Configuration.ConfigurationSettings.AppSettings["Key"];
但是现在FrameWork2.0已经明确表示此属性已经过时。并建议改为ConfigurationManager或WebConfigurationManager。并且AppSettings属性是只读的,并不支持修改属性值.

但是要想调用ConfigurationManager必须要先在工程里添加system.configuration.dll程序集的引用。(在解决方案管理器中右键点击工程名称,在右键菜单中选择添加引用,.net TablePage下即可找到)添加引用后可以用 String str = ConfigurationManager.AppSettings["Key"]来获取对应的值了。

更新配置文件:
Configuration cfa = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
//添加

cfa.AppSettings.Settings.Add("key", "Name")

//修改

cfa.AppSettings.Settings["BrowseDir"].Value = "name";

最后调用
cfa.Save();
当前的配置文件更新成功。

ConfigurationManager.RefreshSection("appSettings");// 刷新命名节,在下次检索它时将从磁盘重新读取它。记住应用程序要刷新节点

免责声明:文章转载自《C# 配置文件读取与修改》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇实现移动端上拉加载效果C# winform在WebBrowser下获取完整的Cookies(包括含HTTPOnly属性的)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

python 钉钉 消息推送 文件传输

1、消息推送 钉钉群添加机器人 方式一:钉钉 群设置添加 群设置 -> 智能群助手 -> 添加机器人 -- 自定义机器人 设置如下: 这里选择 自定义关键字 填写"消息推送" ,只有发送的消息包含了 这个关键字,才会推送这个消息 复制webhook,代码需要用到 defsend_massage(message): webhook =...

uniapp原生插件开发及打包发布

uniapp原生插件开发及打包发布 一.下载unipp提供的sdk包: 官方链接:https://nativesupport.dcloud.net.cn/AppDocs/usesdk/android 二.开发原生插件: 1.创建android空项目: 2.创建Module模块: 3.配置libs: 将sdk中的包lib.5plus.base-relea...

分享api接口验证模块

一.前言   权限验证在开发中是经常遇到的,通常也是封装好的模块,如果我们是使用者,通常指需要一个标记特性或者配置一下就可以完成,但实际里面还是有许多东西值得我们去探究。有时候我们也会用一些开源的权限验证框架,不过能自己实现一遍就更好,自己开发的东西成就感(逼格)会更高一些。进入主题,本篇主要是介绍接口端的权限验证,这个部分每个项目都会用到,所以最好就是也...

esp-12e折腾

寒假前就从x宝买了esp-12e以及esp32s,当时似乎是想给自己的蓝牙开门升级换代?esp32s拿来过度linux? 寒假放在书包拿回去以为有时间会玩玩,没想到一直耽搁到现在。前两天才拿出来,网上搜了搜完全不是那么会事,反映了自己购物的时候多有不理智 不知道为什么,官方最新版本里面直接把esp12e的文档给删除了,估计是设计有缺陷?只留下了esp12f...

友盟官方文档

#  产品概述 关于分享和授权的sdk接口,我们在v4.4.0做出了巨大的改变,精简了接口调用的代码。并将分享授权,与评论等功能做出了隔离,使结构更加清晰。所以本版本的功能也只有分享与授权并无其他功能,请开发者注意。 注意:本文示例代码只有分享与授权功能,并对接口进行了调整,如需要原功能的开发者,请继续使用v4.3.0版本。 # 获取友盟Appkey 如果你...

调用钉钉接口发送消息

1.首先登陆钉钉开发者后台 https://ding-doc.dingtalk.com/ 2.选择H5微应用,创建应用 4.创建好之后,查看所建好的应用信息 其中AgentId,AppKey,AppSecret很重要,调用时需要用到 5.直接上代码看效果 1 string appkey = "dingv0cab6brl1ax6exd"; 2...