• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
bobird的学习笔记
博客园    首页    新随笔    联系   管理    订阅  订阅

C# 配置文件读取与修改

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

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

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

ConfigurationManager.RefreshSection("appSettings");// 刷新命名节,在下次检索它时将从磁盘重新读取它。
ConfigurationSettings也存在这个问题, 但是我还不知道怎么刷新节点, 呵呵.

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

新方法”

配置文件:

/// <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 on 2013-07-09 10:13  bobird  阅读(234)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3