.NET学习技巧:C# 配置文件读取与修改

本文详细介绍了配置文件的管理与更新方法,包括应用程序和Web配置文件的区别、更新方法及注意事项。重点阐述了如何通过ConfigurationManager和WebConfigurationManager进行配置文件的读取、更新和刷新操作,以及使用XML文档手动修改配置文件的方法。同时提醒读者注意Framework2.0中对ConfigurationSettings属性的废弃警告,并推荐使用更新的方法进行配置文件的管理。

转自:http://tech.diannaodian.com/dw/kf/net/2012/0417/172082.html

配置文件在很多情况下都使用到, 配置文件分为两种 一种是应用程序的配置文件, 一种是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 " ); //

  刷新命名节,在下次检索它时将从磁盘重新读取它。记住应用程序要刷新节点


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值