1、添加System.Configuration.dll引用;程序中添加using System.Configuration;

读取数据:(tbHost为文本控件)

[csharp] view plain copy print?
  1. tbHost.Text = ConfigurationManager.AppSettings["host"].ToString();

tbHost.Text = ConfigurationManager.AppSettings["host"].ToString();

2、修改、更新数据

[csharp] view plain copy print?
  1. private void btnOk_Click(object sender, EventArgs e)
  2. {
  3. if (tbHost.Text.Trim().Equals("") || tbUserid.Text.Trim().Equals("")) return;
  4. // 修改并更新配置文件
  5. UpdateConfig("host", tbHost.Text.Trim());
  6. UpdateConfig("userid", tbUserid.Text.Trim());
  7. }
  8. private void UpdateConfig(string key,string value)
  9. {
  10. // 通过Xml方式(需using System.xml;)
  11. //XmlDocument doc = new XmlDocument();
  12. //doc.Load(Application.ExecutablePath + ".config");
  13. //XmlNode node = doc.SelectSingleNode(@"//add[@key='" + key + "']"); // 定位到add节点
  14. //XmlElement element = (XmlElement)node;
  15. //element.SetAttribute("value", value); // 赋值
  16. //doc.Save(Application.ExecutablePath + ".config");
  17. //ConfigurationManager.RefreshSection("appSetting"); // 刷新节点
  18. // 利用Configuration
  19. Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
  20. config.AppSettings.Settings[key].Value = value;
  21. config.Save(ConfigurationSaveMode.Full);
  22. ConfigurationManager.RefreshSection("appSettings");
  23. }

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# 动态获取、修改、更新配置文件 实现思路相关推荐

  1. SpringBoot - 动态修改yml配置文件

    目录 前言 具体实现 实现代码 测试 源码 前言 记录下SpringBoot修改yml配置文件后无需重启服务的方式(打包后生效),效果如下: 具体实现 实现代码 pom.xml <depende ...

  2. 【瑞芯微Rockchip Linux平台】SoftAp需求实现(3)动态获取BT Mac地址并更新beacon帧中的mac信息

    [瑞芯微Rockchip Linux平台]SoftAp需求实现(3)动态获取BT Mac地址并更新beacon帧中的mac信息 1. 获取本机的蓝牙mac地址 __get_bt_mac_addr() ...

  3. ecshop后台实现用ajax动态修改/更新用户评论的时间

    2019独角兽企业重金招聘Python工程师标准>>> 刚开始要实现在后台修改用户评论的添加时间,想用表单提交的方式,但是看了后台商品列表页的用ajax实现动态修改,我就萌生了这个用 ...

  4. vue 获取动态域名_vue项目接口域名动态获取操作

    需求: 接口域名是从外部 .json 文件里获取的. 思路: 在开始加载项目前 进行接口域名获取,然后重置 接口域名的配置项. 实现: 1.config/index.js 文件 进行基础配置 impo ...

  5. ASP.NET动态的修改主题

    在有的网站上,允许用户根据自己的喜好来更改皮肤,这个功能利用ASP.NET的主题机制可以方便的实现,在C#代码中可以通过Page类的Theme属性改变页面的主题,代码如下: Page.Theme =& ...

  6. 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 ...

  7. linux中sed命令用例,Linux中使用sed命令或awk命令修改常规配置文件

    一.方案: Linux中使用sed命令或awk命令修改常规配置文件 二.步骤: 1.假设有一个a.txt,内容如下: #!/bin/bash aa= bbb= ccc= #ddd= 2.如果想要把里面 ...

  8. 【100个 Unity踩坑小知识点】| Unity调用API ,动态获取Android权限,附带所有Android权限表格

    Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 . 包括游戏开发.美术.建筑.汽车设计.影视在内的所有创作者,借助 Unity 将创意 ...

  9. 我的JAVA笔记之动态获取最近一年的月份(“yyyy-MM“)

    我的JAVA笔记之动态获取最近一年的月份 今天的日期是2020.7.4 打印格式如下: [2019-07, 2019-08, 2019-09, 2019-10, 2019-11, 2019-12, 2 ...

最新文章

  1. 深度学习的搜索应用Searching with Deep Learning
  2. 在el-table中使用el-popover,没法点击确定或取消来关闭
  3. Linux学习系列之Nginx调优实战
  4. html自定义标签模板,javascript – 模板与HTML自定义元素的使用
  5. python分配红包程序_Python版微信红包分配算法
  6. GlideDemo【Glide3.7.0版本的简单使用以及圆角功能】
  7. Spring Boot 系列(七)Swagger2-生成RESTful接口文档
  8. ctypes库的使用整理
  9. 日志系统实战(一)—AOP静态注入
  10. 592. 分数加减运算 : 表达式计算入门题
  11. 揭秘 | 2021年移动云API大赛决赛大奖花落谁家?
  12. 手提电脑无法管理计算机,细说笔记本键盘无法输入怎么办
  13. 程序员必会的计算机网络知识 --酷勤网
  14. iPhone手机拍的图片为什么电脑上打不开?秒懂
  15. Python——域名解析成IP地址
  16. Activity启动另一个Activity并返回的完整生命周期
  17. 【AE扩展插件问题解决记录】
  18. 线性代数Python计算:向量的模及向量间的夹角
  19. 电脑的远程控制是什么
  20. python复制文件夹shutil.copytree

热门文章

  1. flutter图片点击跳转_使用Flutter之后,我们的CPU占用率降了50%
  2. java 查询线程池_[代码全屏查看]-我的 Java 线程池测试类
  3. sql开启mysql远程连接_CentOS系统中安装MySQL和开启MySQL远程访问的方法
  4. 三面求对称二叉树_字节跳动后端实习面经,一面+二面+三面(已收到offer)
  5. 群体智能,多个机器人协同搬运!
  6. HDLBits答案(4)_如何避免生成锁存器?
  7. http 测试工具_20+最好的开源自动化测试工具
  8. python json unicode_python2下解决json的unicode编码问题
  9. 计算机组成原理课程设计报告 给出指令执行流程 add(二进制加法),《计算机组成原理》课程设计报告材料...
  10. SQL server CASE WHEN