C# 配置文件读取与修改_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > C# 配置文件读取与修改

C# 配置文件读取与修改

 2013/7/18 16:12:50  蒋叶湖  博客园  我要评论(0)
  • 摘要:配置文件在很多情况下都使用到,配置文件分为两种一种是应用程序的配置文件,一种是web的配置文件.两种配置文件最大的区别是web的配置文件更新之后会实时更新,应用程序的配置文件不会实时更新.更新应用程序的配置文件之后需刷新ConfigurationManager.RefreshSection("appSettings");//刷新命名节,在下次检索它时将从磁盘重新读取它。ConfigurationSettings也存在这个问题,但是我还不知道怎么刷新节点,呵呵.旧方法
  • 标签: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 class="c# color1">/// <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"); }

向配置文件插入值:

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

发表评论
用户名: 匿名