23
2012
06

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


          配置文件在很多情况下都使用到, 配置文件分为两种 一种是应用程序的配置文件, 一种是web的配置文件.
  两种配置文件最大的区别是web的配置文件更新之后会时时更新, 应用程序的配置文件不会实时更新.
  更新应用程序的配置文件之后需刷新
  ConfigurationManager.RefreshSection("appSettings");// 刷新命名节,在下次检索它时将从磁盘重新读取它。
  ConfigurationSettings也存在这个问题, 但是我还不知道怎么刷新节点, 呵呵.
  旧方法: 各位看官最好使用下面”新方法”
  配置文件:

 
   
 
  后台程序值得读取:
string s=System.Configuration.ConfigurationSettings.AppSettings["name"];
  修改配置文件的值:
///
/// 更新配置文件信息
///
///
  配置文件字段名称
///
  值
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");
}
  
  向配置文件插入值:
/// 
///向.config文件的appKey结写入信息AppValue   保存设置 
/// 
///
  节点名 
///
  值
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");//
  刷新命名节,在下次检索它时将从磁盘重新读取它。记住应用程序要刷新节点

« 上一篇下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。