C# 动态获取、修改、更新配置文件 实现思路
-
1、添加System.Configuration.dll引用;程序中添加using System.Configuration;
读取数据:(tbHost为文本控件)
[csharp] view plain copy print?- tbHost.Text = ConfigurationManager.AppSettings["host"].ToString();
tbHost.Text = ConfigurationManager.AppSettings["host"].ToString();
2、修改、更新数据
[csharp] view plain copy print?- private void btnOk_Click(object sender, EventArgs e)
- {
- if (tbHost.Text.Trim().Equals("") || tbUserid.Text.Trim().Equals("")) return;
- // 修改并更新配置文件
- UpdateConfig("host", tbHost.Text.Trim());
- UpdateConfig("userid", tbUserid.Text.Trim());
- }
- private void UpdateConfig(string key,string value)
- {
- // 通过Xml方式(需using System.xml;)
- //XmlDocument doc = new XmlDocument();
- //doc.Load(Application.ExecutablePath + ".config");
- //XmlNode node = doc.SelectSingleNode(@"//add[@key='" + key + "']"); // 定位到add节点
- //XmlElement element = (XmlElement)node;
- //element.SetAttribute("value", value); // 赋值
- //doc.Save(Application.ExecutablePath + ".config");
- //ConfigurationManager.RefreshSection("appSetting"); // 刷新节点
- // 利用Configuration
- Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
- config.AppSettings.Settings[key].Value = value;
- config.Save(ConfigurationSaveMode.Full);
- ConfigurationManager.RefreshSection("appSettings");
- }
private void btnOk_Click(object sender, EventArgs e){if (tbHost.Text.Trim().Equals("") || tbUserid.Text.Trim().Equals("")) return;// 修改并更新配置文件UpdateConfig("host", tbHost.Text.Trim());UpdateConfig("userid", tbUserid.Text.Trim());}private void UpdateConfig(string key,string value){// 通过Xml方式(需using System.xml;)//XmlDocument doc = new XmlDocument();//doc.Load(Application.ExecutablePath + ".config");//XmlNode node = doc.SelectSingleNode(@"//add[@key='" + key + "']"); // 定位到add节点//XmlElement element = (XmlElement)node;//element.SetAttribute("value", value); // 赋值//doc.Save(Application.ExecutablePath + ".config");//ConfigurationManager.RefreshSection("appSetting"); // 刷新节点// 利用ConfigurationConfiguration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);config.AppSettings.Settings[key].Value = value;config.Save(ConfigurationSaveMode.Full);ConfigurationManager.RefreshSection("appSettings");}
说明:经常遇到的问题是修改数据后配置文件未能立即生效,再次读取时依然是修改前的数据。参考上述代码时,如果还遇到这个问题,可尝试把“Xml方式”(即UpdateConfig()中注释部分取消注释)和Congiguration方式一起使用。
C# 动态获取、修改、更新配置文件 实现思路相关推荐
- SpringBoot - 动态修改yml配置文件
目录 前言 具体实现 实现代码 测试 源码 前言 记录下SpringBoot修改yml配置文件后无需重启服务的方式(打包后生效),效果如下: 具体实现 实现代码 pom.xml <depende ...
- 【瑞芯微Rockchip Linux平台】SoftAp需求实现(3)动态获取BT Mac地址并更新beacon帧中的mac信息
[瑞芯微Rockchip Linux平台]SoftAp需求实现(3)动态获取BT Mac地址并更新beacon帧中的mac信息 1. 获取本机的蓝牙mac地址 __get_bt_mac_addr() ...
- ecshop后台实现用ajax动态修改/更新用户评论的时间
2019独角兽企业重金招聘Python工程师标准>>> 刚开始要实现在后台修改用户评论的添加时间,想用表单提交的方式,但是看了后台商品列表页的用ajax实现动态修改,我就萌生了这个用 ...
- vue 获取动态域名_vue项目接口域名动态获取操作
需求: 接口域名是从外部 .json 文件里获取的. 思路: 在开始加载项目前 进行接口域名获取,然后重置 接口域名的配置项. 实现: 1.config/index.js 文件 进行基础配置 impo ...
- ASP.NET动态的修改主题
在有的网站上,允许用户根据自己的喜好来更改皮肤,这个功能利用ASP.NET的主题机制可以方便的实现,在C#代码中可以通过Page类的Theme属性改变页面的主题,代码如下: Page.Theme =& ...
- centos7安装dhcp服务器并由客户端动态获取IP地址
主机架构: 角色 ip地址 网关 dhcp服务器 192.168.8.81 192.168.8.1 客户机1 动态获取 192.168.8.81 客户机2 192.168.8.99 192.168.8 ...
- linux中sed命令用例,Linux中使用sed命令或awk命令修改常规配置文件
一.方案: Linux中使用sed命令或awk命令修改常规配置文件 二.步骤: 1.假设有一个a.txt,内容如下: #!/bin/bash aa= bbb= ccc= #ddd= 2.如果想要把里面 ...
- 【100个 Unity踩坑小知识点】| Unity调用API ,动态获取Android权限,附带所有Android权限表格
Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 . 包括游戏开发.美术.建筑.汽车设计.影视在内的所有创作者,借助 Unity 将创意 ...
- 我的JAVA笔记之动态获取最近一年的月份(“yyyy-MM“)
我的JAVA笔记之动态获取最近一年的月份 今天的日期是2020.7.4 打印格式如下: [2019-07, 2019-08, 2019-09, 2019-10, 2019-11, 2019-12, 2 ...
最新文章
- 深度学习的搜索应用Searching with Deep Learning
- 在el-table中使用el-popover,没法点击确定或取消来关闭
- Linux学习系列之Nginx调优实战
- html自定义标签模板,javascript – 模板与HTML自定义元素的使用
- python分配红包程序_Python版微信红包分配算法
- GlideDemo【Glide3.7.0版本的简单使用以及圆角功能】
- Spring Boot 系列(七)Swagger2-生成RESTful接口文档
- ctypes库的使用整理
- 日志系统实战(一)—AOP静态注入
- 592. 分数加减运算 : 表达式计算入门题
- 揭秘 | 2021年移动云API大赛决赛大奖花落谁家?
- 手提电脑无法管理计算机,细说笔记本键盘无法输入怎么办
- 程序员必会的计算机网络知识 --酷勤网
- iPhone手机拍的图片为什么电脑上打不开?秒懂
- Python——域名解析成IP地址
- Activity启动另一个Activity并返回的完整生命周期
- 【AE扩展插件问题解决记录】
- 线性代数Python计算:向量的模及向量间的夹角
- 电脑的远程控制是什么
- python复制文件夹shutil.copytree
热门文章
- flutter图片点击跳转_使用Flutter之后,我们的CPU占用率降了50%
- java 查询线程池_[代码全屏查看]-我的 Java 线程池测试类
- sql开启mysql远程连接_CentOS系统中安装MySQL和开启MySQL远程访问的方法
- 三面求对称二叉树_字节跳动后端实习面经,一面+二面+三面(已收到offer)
- 群体智能,多个机器人协同搬运!
- HDLBits答案(4)_如何避免生成锁存器?
- http 测试工具_20+最好的开源自动化测试工具
- python json unicode_python2下解决json的unicode编码问题
- 计算机组成原理课程设计报告 给出指令执行流程 add(二进制加法),《计算机组成原理》课程设计报告材料...
- SQL server CASE WHEN