zoukankan      html  css  js  c++  java
  • .NET修改配置文件

      首先说明,本文参考了这个帖子http://www.cnblogs.com/henw/archive/2012/01/31/2333783.html,进行了一些补充

      简要说来两种方法,一是把config文件当做xml文件处理,这样可以使用DOM,也可以使用linq to xml,下面的代码使用了DOM:

      

    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("configuration").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");
            }

      第二种就是使用.net提供System.Configuration

      

     private void ChangeConfig()
            {
                Configuration cfa = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
                //添加
                cfa.AppSettings.Settings.Add("key", "test2");
                //修改
                cfa.AppSettings.Settings["test"].Value = "test";
                cfa.Save();
            }

      第二种方法更简洁,不过再说下,这两种方法修改的都是程序生成目录下的后缀为.exe.config的文件,我上传一张我的试验项目的生成目录图

      我们要修改的应该是MailFormApp.exe.Config这个文件,而不是项目里的app.config,一些初次接触config的人不了解,可能就会认为这两种方法都无效。

      第一种指定了文件路径,而且是把config文件当文件来处理,调试和直接运行exe都能达到效果。然而使用C#提供的方法就要注意了,由于调试时程序运行在vs里头,vs是程序的宿主,所以直接F5调试的时候其实使用的是MailFormApp.vshost.exe和MailFormApp.vshost.exe.Config,所以是无法修改MailFormApp.exe.Config的。关于.vshost.exe.Config这个文件,经过我测试,调试时是先将.exe.Config文件内容copy到.vshost.exe.Config再读取该文件,所以调试时无法做到修改配置文件。但是如果直接双击运行目标exe,可以发现可以正确修改.exe.Config文件的,所以要注意不要因为在调试发现配置文件没有改误认为该方法无效。另外MailFormApp.vshost.exe只是用来寄宿在vs里头的,无法直接双击运行。

  • 相关阅读:
    从前端回到了我的本专业网络
    相对定位与绝对定位的理解
    table( 表格)以及列表的使用
    使用editplus编写HTML页面为什么设置了UTF-8仍然中文乱码
    复习--3--对于第三堂课的总结--将两个页面相互用超链接链接到一起
    前端学习笔录--2--HTML篇--有点麻烦的加载图片
    前端学习笔录--1--HTML篇
    sublime text 有毒--无法使用快捷键利用浏览器打开HTML文件
    sublime text 插件
    sublime写网页代码,里面的中文字符会出现乱码
  • 原文地址:https://www.cnblogs.com/ValiancyHe/p/3277559.html
Copyright © 2011-2022 走看看