C# 配置文件读取与修改
  M9aMEIE19lAW 2023年11月02日 25 0


C# 配置文件读取与修改


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

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

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


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

ConfigurationSettings也存在这个问题, 但是我还不知道怎么刷新节点, 呵呵.



旧方法: 各位看官最好使用下面”新方法”

配置文件:

<configuration> 
   <appSettings> 
<add key="name" value="我是远程服务器"/>   </appSettings> 
 </configuration>后台程序值得读取:
string s=System.Configuration.ConfigurationSettings.AppSettings["name"];

修改配置文件的值:

/// <summary>           


            /// 更新配置文件信息           


            /// </summary>           


            /// <param name="name">配置文件字段名称</param>           


            /// <param name="Xvalue">值</param>           


            private             void            UpdateConfig(            string            name,            string             Xvalue)           


            {           


                        XmlDocument doc =             new            XmlDocument();           


                        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"            );           


            }



向配置文件插入值:

///<summary>             


            ///向.config文件的appKey结写入信息AppValue   保存设置             


            ///</summary>             


            ///<param name="AppKey">节点名</param>             


            ///<param name="AppValue">值</param>           


            Private             void            SetValue(String AppKey,String AppValue)           


            {           


                        Xmldocument xDoc=            new            XmlDocument();           


                        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");// 刷新命名节,在下次检索它时将从磁盘重新读取它。记住应用程序要刷新节点


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
M9aMEIE19lAW
最新推荐 更多

2024-05-17