[[高手答疑]] C#配置文件读取与修改——.NET学习技巧

[复制链接]
查看: 70|回复: 0
发表于 2024-9-15 01:02:20 | 显示全部楼层 | 阅读模式
易博V9下载

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

两种配置文件最大的区别在于Web的配置文件更新之后会实时生效,而应用程序的配置文件则不会实时更新。更新应用程序的配置文件之后需要进行刷新,可以使用如下方式:

  1. ConfigurationManager.RefreshSection("appSettings"); // 刷新命名节,在下次检索它时将从磁盘重新读取它。
复制代码

ConfigurationSettings也存在这个问题,不过目前还不清楚如何刷新节点。推荐使用以下新方法:

配置文件:

后台程序读取配置文件示例:

  1. string s = System.Configuration.ConfigurationSettings.AppSettings["name"];
复制代码

修改配置文件的值:

  1. ///
  2. /// 更新配置文件信息
  3. ///
  4. /// 配置文件字段名称
  5. ///
  6. /// 值
  7. private void UpdateConfig(string name, string Xvalue)
  8. {
  9. XmlDocument doc = new XmlDocument();
  10. doc.Load(Application.ExecutablePath + ".config");
  11. XmlNode node = doc.SelectSingleNode("//add[@key='" + name + "']");
  12. XmlElement ele = (XmlElement)node;
  13. ele.SetAttribute("value", Xvalue);
  14. doc.Save(Application.ExecutablePath + ".config");
  15. }
复制代码

向配置文件插入值:

  1. ///
  2. /// 向.config文件的appKey结写入信息AppValue 保存设置
  3. ///
  4. /// 节点名
  5. ///
  6. /// 值
  7. private void SetValue(String AppKey, String AppValue)
  8. {
  9. XmlDocument xDoc = new XmlDocument();
  10. xDoc.Load(System.Windows.Forms.Application.ExecutablePath + ".config");
  11. XmlNode xNode;
  12. XmlElement xElem1;
  13. XmlElement xElem2;
  14. xNode = xDoc.SelectSingleNode("//appSettings");
  15. xElem1 = (XmlElement)xNode.SelectSingleNode("//add[@key='" + AppKey + "']");
  16. if (xElem1 != null)
  17. xElem1.SetAttribute("value", AppValue);
  18. else
  19. {
  20. xElem2 = xDoc.createElement("add");
  21. xElem2.SetAttribute("key", AppKey);
  22. xElem2.SetAttribute("value", AppValue);
  23. xNode.AppendChild(xElem2);
  24. }
  25. xDoc.Save(System.Windows.Forms.Application.ExecutablePath + ".config");
  26. }
复制代码

新的方法:

  1. System.Configuration.ConfigurationSettings.AppSettings["Key"];
复制代码

但是现在Framework 2.0已经明确表示此属性已经过时,并建议改为使用ConfigurationManager或WebConfigurationManager。并且AppSettings属性是只读的,并不支持修改属性值。

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

更新配置文件:

  1. Configuration cfa = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
  2. // 添加
  3. cfa.AppSettings.Settings.Add("key", "Name");
  4. // 修改
  5. cfa.AppSettings.Settings["BrowseDir"].Value = "name";
复制代码

最后调用

  1. cfa.Save();
复制代码

当前的配置文件更新成功。

  1. ConfigurationManager.RefreshSection("appSettings"); // 刷新命名节,在下次检索它时将从磁盘重新读取它。记住应用程序要刷新节点
复制代码
易博软件介绍
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1、请认真发帖,禁止回复纯表情,纯数字等无意义的内容!帖子内容不要太简单!
2、提倡文明上网,净化网络环境!抵制低俗不良违法有害信息。
3、如果你对主帖作者的帖子不屑一顾的话,请勿回帖。谢谢合作!
3、问答求助区发帖求助后,如有其他用户热心帮您解决问题后,请自觉点击设为最佳答案按钮。

 
 
QQ在线客服
QQ技术支持
工作时间:
8:00-18:00
软著登字:
1361266号
官方微信扫一扫
weixin

QQ|小黑屋|Archiver|慈众营销 ( 粤ICP备15049986号 )|网站地图

自动发帖软件 | 自动发帖器 | 营销推广软件 | 网络营销工具 | 网络营销软件 | 网站推广工具 | 网络推广软件 | 网络推广工具 | 网页推广软件 | 信息发布软件 | 网站推广工具 | 网页推广软件

Powered by Discuz! X3.4   © 2012-2020 Comsenz Inc.  慈众科技 - Collect from 深圳吉宝泰佛文化有限公司 公司地址:罗湖区黄贝街道深南东路集浩大厦A1403

返回顶部 返回列表