在开发Web项目的时候,会有一个配置文件Web.config,用来存放一些全局的变量,如连接数据库用的字符串。相应的,在开发winform程序时,也有一个配置文件,它就是App.config,这个文件的作用与Web.config大致相同,也可以用来存放程序所用的全局变量及Value值。

来看一个app.config文件的例子:

<?xml version="1.0" encoding="utf-8" ?>

<configuration>
  <appSettings>
    <!--图片存放路径-->
    <add key="ImgPath" value="D:\img\" />
  </appSettings>
</configuration>

可以看出,app.config和web.config一样,嗯,它也是一个XML文件。那怎么对这个文件中的元素进行读取操作呢?很简单,来看代码:

string strPath = System.Configuration.ConfigurationSettings.AppSettings["ImgPath"].ToString();

这样就可以把app.config文件中ImgPath这个元素的Value值读取出来了。那怎么改写元素的值呢?如果你认为像读那样的去写,像这样的代码:

System.Configuration.ConfigurationSettings.AppSettings["ImgPath"] = @"E:\img\"; //这样写是没用的

在对app.config文件的元素Value值进行修改操作时,只能把app.config文件当作一个普通的XML文件来对待,利用System.Xml.XmlDocument类把这个app.config文件读到内存中,并通过System.Xml.XmlNode类找到appSettings节点,通过System.Xml.XmlElement类找到节点下的某个元素,利用SetAttribute方法来修改这个元素的值后,最后再将app.config文件保存到原的目录中,这样,才算完成了对一个元素Value值的修改操作。下面这个方法可完成对app.config文件appSettings节点下任意一个元素进行修改,当然,你也可能修改这个方法,达到修改任意节点,任意元素的Value值。

public static void SetValue(string AppKey, string AppValue)

{

System.Xml.XmlDocument xDoc = new System.Xml.XmlDocument();

xDoc.Load(System.Windows.Forms.Application.ExecutablePath + ".config");

System.Xml.XmlNode xNode;

System.Xml.XmlElement xElem1;

System.Xml.XmlElement xElem2;

xNode = xDoc.SelectSingleNode("//appSettings");

xElem1 = (System.Xml.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");

}

注意这个方法中if条件else下的语句,当在文件中没有找到给定的元素时,方法会创建这个元素。

winform程序读取和改写配置文件App.config元素的值相关推荐

  1. 类库如何读取配置文件(app.config)?

    我们知道,在WinForm或者是Console应用程序中,我们可以使用app.config文件,做为程序的配置信息的储存.然后我们使用System.Configuration类进行调用,读取或更新等. ...

  2. 类项目中的配置文件app.config在打包安装后的信息获取的问题

    在一个项目中碰到这样的一个问题,做一个WORD插件,功能在类库项目中实现了,配置信息存在类库项目的配置文件app.config中,在进行打包后,获取的配置文件中的DocType节点信息时,使用以下方法 ...

  3. C#中怎样获取默认配置文件App.config中配置的键值对内容

    场景 在新建一个程序后,项目中会有一个默认配置文件App.config 一般会将一些配置文件信息,比如连接数据库的字符串等信息存在此配置文件中. 怎样在代码中获取自己配置的键值对信息. 注: 博客主页 ...

  4. 一步一步教你玩转.NET Framework的配置文件app.config (转载)

    一步一步教你玩转.NET Framework的配置文件app.config 在一般的项目中,为了使你的代码更加灵活,更方便调整,减少不必要的hard code,我们都在config中添加许多配置信息, ...

  5. C#读取配置文件app.config

    应用程序配置文件是标准的 XML 文件,XML 标记和属性是区分大小写的.它是可以按需要更改的,开发人员可以使用配置文件来更改设置,而不必重编译应用程序. 配置文件的根节点是configuration ...

  6. (原)举例说明C#自定义配置文件app.config及如何读取配置内容(在app.config加入自定义的XML节点)?...

    App.config文件如下: <?xml version="1.0" encoding="utf-8" ?> <configuration& ...

  7. 配置文件app.config

    无论对于客户端程序还是web应用程序,配置文件的作用不言而喻,现总结用法如下: 1. 创建配置节类 必须创建继承自ConfigurationSection的对象才能进行配置数据读写操作,Configu ...

  8. 配置文件App.config 生成和调用的两种方式

    方式一: App.config //app.config<?xml version="1.0" encoding="utf-8"?> <con ...

  9. 使用.NET Framework的配置文件app.config

    在一般的项目中,为了使你的代码更加灵活,更方便调整,减少不必要的hard code,我们都在config中添加许多配置信息,一般可以选择.NET自带的配置文件形式app.config或者web项目中的 ...

最新文章

  1. MySQL Server系统架构
  2. camera客观测试_光学图像测试之屏幕色彩管理测试
  3. matlab关于噪声课设,基于matlab的有噪声的语音信号处理的课程设计.doc
  4. BelgiumTS交通数据集分类-pytorch版
  5. RequestMapping
  6. 数据结构:在一个单链表中,若删除p指向节点的后继节点,则执行的操作为:( )
  7. 一个大龄程序员对大家的总结性忠告(源于VeryCD)
  8. linux 编辑启动菜单,grub2的配置,linux启动菜单修改
  9. 华为云 - 公有云产品 - OBS计费说明
  10. 帆软报表重要Activator之DesignerStartup中的GlobalListenerProvider扩展开发
  11. 蓝牙版本avrcp怎么选_「科技犬」除了苹果AirPods,真无线蓝牙耳机到底怎么选?...
  12. spring boot企业合同管理系统 毕业设计源码161456
  13. 推荐的五款市面上常用的免费CMS建站系统
  14. 周杰伦的歌里都有些啥?
  15. 济南市公安局人口数据备份库项目(数据复制)之一
  16. 通过Vue+flvjs在HTML5中播放flv格式视频文件—demo及api
  17. 安卓版旅行青蛙三叶草修改教程
  18. 怎么屏蔽百度搜索时的百度热榜?
  19. 异常org.mockito.exceptions.verification.TooManyActualInvocations解决方案
  20. 从汇编角度看一个C函数调用

热门文章

  1. 重磅|我国科学家成功研制全球神经元规模最大的类脑计算机
  2. 人机融合智能与深度态势感知
  3. 关上Deepfake的潘多拉魔盒,RealAI推出深度伪造视频检测工具
  4. A16Z内部万字报告:人类与AI结合的最佳形态
  5. 天才也勤奋!DeepMind哈萨比斯自述:领导400名博士向前,每天工作至凌晨4点
  6. 马歇尔·赫伯特:人工智能的前沿技术与实例分析
  7. 2018年人工智能和机器学习路在何方?听听美国公司怎么做
  8. 零售业将成人工智能系统支出额最高的行业
  9. OMG!Semaphore里面居然有这么一个大坑!
  10. 什么是 “进程、线程、协程”?