配置文件读取与修改

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

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

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

 

配置文件:

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

posted @ 2013-08-02 23:33  蓝色格调  阅读(318)  评论(0编辑  收藏  举报