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

    • 0
      点赞
    • 2
      收藏
      觉得还不错? 一键收藏
    • 1
      评论

    “相关推荐”对你有帮助么?

    • 非常没帮助
    • 没帮助
    • 一般
    • 有帮助
    • 非常有帮助
    提交
    评论 1
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值