`
guoyiqi
  • 浏览: 1049686 次
社区版块
存档分类
最新评论

C#读取配置文件浅析(转自:http://developer.51cto.com/art/200908/143706.htm)

 
阅读更多

C#读取配置文件是如何实现的呢?本文就C#读取配置文件方面向你介绍相关内容。希望本文能对大家有所帮助。

AD:

C#读取配置文件是如何实现的呢?在.Net中提供了配置文件,让我们可以很方面的处理配置信息,这个配置是XML格式的。而且.Net中已经提供了一些访问这个文件的功能。

C#读取配置文件1、读取配置信息

下面是一个配置文件的具体内容:

  1. <add span=""><span class="string" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; color: blue; background-color: inherit; ">"coal"</span><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; color: black; background-color: inherit; ">value=</span><span class="string" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; color: blue; background-color: inherit; ">"一二三"</span><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; color: black; background-color: inherit; ">/&gt; </span></add>
  2. <add span=""><span class="string" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; color: blue; background-color: inherit; ">"inWellTime"</span><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; color: black; background-color: inherit; ">value=</span><span class="string" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; color: blue; background-color: inherit; ">"5"</span><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; color: black; background-color: inherit; ">/&gt;</span></add>

.Net提供了可以直接访问(注意大小写)元素的方法,在这元素中有很多的子元素,这些子元素名称都是“add”,有两个属性分别是“key”和“value”。一般情况下我们可以将自己的配置信息写在这个区域中,通过下面的方式进行访问:

  1. StringConString=System.Configuration.ConfigurationSettings.AppSettings["inWellTime"];

在AppSettings后面的是子元素的key属性的值,例如AppSettings["inWellTime"],我们就是访问这个子元素,它的返回值就是“5”,即value属性的值。

C#读取配置文件2、设置配置信息

如果配置信息是静态的,我们可以手工配置,要注意格式。如果配置信息是动态的,就需要我们写程序来实现。在.Net中没有写配置文件的功能,我们可以使用操作XML文件的方式来操作配置文件。

写了个WinForm中读写配置文件App.config的类

C#读取配置文件代码如下:

  1. usingSystem;
  2. usingSystem.Configuration;
  3. usingSystem.Xml;
  4. usingSystem.Data;
  5. namespacecn.zhm.common
  6. {
  7. ///
  8. ///ConfigClass的摘要说明。
  9. ///
  10. publicclassConfigClass
  11. {
  12. publicstringstrFileName;
  13. publicstringconfigName;
  14. publicstringconfigValue;
  15. publicConfigClass()
  16. {
  17. //
  18. //TODO:在此处添加构造函数逻辑
  19. //
  20. }
  21. publicstringReadConfig(stringconfigKey)
  22. {
  23. configValue="";
  24. configValue=ConfigurationSettings.AppSettings[""+configKey+""];
  25. returnconfigValue;
  26. }
  27. //得到程序的config文件的名称以及其所在的全路径
  28. publicvoidSetConfigName(stringstrConfigName)
  29. {
  30. configName=strConfigName;
  31. //获得配置文件的全路径
  32. GetFullPath();
  33. }
  34. publicvoidGetFullPath()
  35. {
  36. //获得配置文件的全路径
  37. strFileName=AppDomain.CurrentDomain.BaseDirectory.ToString()+configName;
  38. }
  39. publicvoidSaveConfig(stringconfigKey,stringconfigValue)
  40. {
  41. XmlDocumentdoc=newXmlDocument();
  42. doc.Load(strFileName);
  43. //找出名称为“add”的所有元素
  44. XmlNodeListnodes=doc.GetElementsByTagName("add");
  45. for(inti=0;i{
  46. //获得将当前元素的key属性
  47. XmlAttributeatt=nodes[i].Attributes["key"];
  48. //根据元素的第一个属性来判断当前的元素是不是目标元素
  49. if(att.Value==""+configKey+"")
  50. {
  51. //对目标元素中的第二个属性赋值
  52. att=nodes[i].Attributes["value"];
  53. att.Value=configValue;
  54. break;
  55. }
  56. }
  57. //保存上面的修改
  58. doc.Save(strFileName);
  59. }
  60. }
  61. }

C#读取配置文件应用如下:

C#读取配置文件之读取:

  1. ConfigClassconfig=newConfigClass();
  2. stringcoal=config.ReadConfig("coal");
  3. this.tbOpenFile.Text=config.ReadConfig("inWellTime");

C#读取配置文件之写:

  1. ConfigClassconfig=newConfigClass();
  2. //得到程序的config名:DataOperate.exe.config;
  3. config.SetConfigName("DataOperate.exe.config");
  4. config.SaveConfig("coal","三二一");
  5. config.SaveConfig("inWellTime","10");

注意:当修改完App.config。文件后,程序中用到的App.config文件的“key”对应的“value”值需要重读,否则修改后修改并不能立即起作用,而要等下次程序重启后才可以读取到修改后的App.config属性值。

C#读取配置文件的相关内容就向你介绍到这里,希望对你学习C#读取配置文件有所帮助。

分享到:
评论

相关推荐

    人工智能-项目实践-C#-基于 C# WPF 的 地震预警 软件.zip

    microsoft/webview2: https://developer.microsoft.com/zh-cn/microsoft-edge/webview2/ 高德地图 Uri Api: https://lbs.amap.com/api/uri-api 百度坐标拾取系统: https://api.map.baidu.com/lbsapi/getpoint/ ...

    使用pcs api往免费的百度网盘上传下载文件的方法

    百度个人云盘空间大,完全免费,而且提供了pcs api供调用操作文件,在平时的项目里往里面保存一些文件是很实用的。 环境准备: 开通读写网盘的权限及获取access_token:...

    58个Mysql免豆资料地址汇总.pdf

    - **下载地址**:[http://down.51cto.com/data/64326](http://down.51cto.com/data/64326) 2. **MySql5.1.5驱动包** - **简介**:MySQL驱动包用于连接应用程序与MySQL数据库,使开发者能够通过编程语言如Java、C#...

    https://download.csdn.net/download/p_xiaojia/9756173

    根据提供的文件信息,我们可以梳理出以下与C#相关的知识点: ### C# 指针操作 1. **指针初始化**: ```csharp int a; int* pa = &a; // 这一行代码是声明了一个整型变量a,并通过指针pa指向了a的地址。 ``` ...

    JS截屏控件

    开发文档-ASP.NET(C#):http://www.cnblogs.com/xproer/archive/2010/12/04/1896552.html 开发文档-PHP:http://www.cnblogs.com/xproer/archive/2011/05/16/2047915.html 开发文档-JSP:...

    Web 断点续传批量上传上传工具

    1. 支持2G文件断点续传功能。 2. 支持文件MD5验证功能。 3. 支持文件及文件夹拖拽上传功能。 4. 支持文件批量上传。 5. 支持文件夹上传。 6. 基于标准HTTP协议。 7. 免费提供JavaScript SDK包,方便您将插件...

    .net C# 学习过程中收藏的一些比较有用的和感兴趣的链接

    http://www.360doc.com/userhome.aspx?userid=19107491&cid=3 jQuery基本选择器及用法 前端模块化开发(AMD和CDM规范) ...http://www.cnblogs.com/dwlsxj/p/4052871.html 浅析MSIL中间语言——PE文件结构篇

    MQTT mosquitto 服务端客户端Demo 可直接使用的工具类

    网上可以找到的mosquitto真的不多,俺这种不是什么技术大牛的人搞...使用前配置properties文件中的brorkerServer的IP和端口。 当然,首先要先安装Mosquitto,并启动mosquitto服务。 服务器端大家直接在这里下载: ...

    ORM框架-VB/C#.Net实体代码生成工具(EntitysCodeGenerate)示例源码

    支持.Net1.1及以上版本,可用于Oracle、SqlServer、Sybase、DB2、MySQL、Access、SQLite、PostgreSQL、DM(达梦)、PowerDesigner文件、Informix、Firebird、MaxDB、Excel等和OleDb、ODBC连接的数据库并可自定义,详见...

    C#获取Web.API数据的后台方法

    C#获取Web.API数据的后台方法,本例不包含api的输出方法 (输出方法请参考:http://download.csdn.net/detail/djk8888/9687185) (api的token验证参考:http://download.csdn.net/detail/djk8888/9680396)。 调试...

    php大文件上传示例代码-mysql-utf8

    新的IO组件在处理磁盘中的文件时,将不必再对文件执行I/O操作,这意味着在对文件进行处理时将不必再为文件申请并分配缓存,所有的文件缓存操作均由系统直接管理,由于取消了将文件数据加载到内存、数据从内存到文件...

    C#代码CIE1931色彩空间xyRGB转换及舌图马蹄图

    C#实现的CIE1931色彩空间,色域图及舌图(马蹄图)。 展示了xyz到RGB的转换。--Jerry Chen CIE1931舌图(马蹄图)显示一个色彩空间,详情参阅: http://en.wikipedia.org/wiki/CIE_1931_color_space xy转换RGB。 ...

    C#开发实战1200例.zip

    第一卷:C#开发实战1200例.z01 地址:http://download.csdn.net/detail/cleopard/5636223 第二卷:C#开发实战1200例.z02 地址:http://download.csdn.net/detail/cleopard/5638549 由于上传限制,压缩包分成3卷 ...

    asp.net大文件上传示例代码-access-gb2312

    新的IO组件在处理磁盘中的文件时,将不必再对文件执行I/O操作,这意味着在对文件进行处理时将不必再为文件申请并分配缓存,所有的文件缓存操作均由系统直接管理,由于取消了将文件数据加载到内存、数据从内存到文件...

    JSP大文件上传控件-access-utf8

    新的IO组件在处理磁盘中的文件时,将不必再对文件执行I/O操作,这意味着在对文件进行处理时将不必再为文件申请并分配缓存,所有的文件缓存操作均由系统直接管理,由于取消了将文件数据加载到内存、数据从内存到文件...

    C#.Net FTPClient组件

    这可能是目前能找到的最好的.Net FtpClient组件了,功能非常之多,...我的这份版本更新到1.0.159,增加了一个FtpClient.GetDirSize方法,可以获取目录的总大小(包括子目录和文件)。 觉得好用,记得回来给个好评哦。

    【.NET珍藏】2012.NET开发必看资料53个+经典源码77个—下载目录

    - **资源地址**:[http://down.51cto.com/zt/70](http://down.51cto.com/zt/70) - **下载量**:1200次 - **好评率**:96.10% 该资源包含了一个完整的基于.NET架构的留言板项目的源码,非常适合初学者学习如何构建...

    C# PING小工具(除了科来ping就是这个了)

    自作了C#PING工具。 主要功能: ping 指定网址或IP。自动记录ping的信息,下次启动自动开启。 显示当前ping值和平均ping值。还有连接失败的错误率。 可选中列表,使用CTRL + C 键复制ping的结果。 界面如下:...

    C#.Net开发MQTT物联网需要的资料和代码汇总支持framework3.5

    c#.Net开发MQTT需要的文档记录、整理写的服务器客户端例子代码,M2QTT支持framework3.5. 整理了几个github、gitee,网上的例子,自己拼凑了个服务器和客户端。一个服务器、两种客户端。 M2Mqtt的github: ...

    WPF编程宝典C#2010版【0分资源】

    WPF编程宝典C#2010版【0分资源】 上一个不小心设置了1分 现在取消 另外 C#100个编程实例程序 http://download.csdn.net/detail/cleopard/5888641 如何学好Iphone开发 20天搞定iPhone软件开发 ...

Global site tag (gtag.js) - Google Analytics