C#读写配置文件Config
应用程序配置文件是标准的XML文件,XML标记和属性是区分大小写的。它是可以按需要更改的,开发人员可以使用配置文件来更改设置,而不必重编译应用程序。配置文件的根节点是configuration。我们经常访问的是appSettings,它是由.Net预定义配置节。
常见配置文件模式:
﹤configSections﹥ //配置节声明区域,包含配置节和命名空间声明
﹤section﹥ //配置节声明
﹤sectionGroup﹥ //定义配置节组
﹤appSettings﹥ //预定义配置节
﹤Custom element for configuration section﹥ //配置节设置区域
C#读取及访问配置文件方法//只有appSettings节
﹤configuration﹥
﹤appSettings﹥
﹤add key="connectionstring" value="User ID=sa;Data Source=.;
Password=;Initial Catalog=test;Provider=SQLOLEDB.1;"/﹥
﹤add key="TemplatePATH" value="Template" /﹥
﹤/appSettings﹥
﹤/configuration﹥
string _connectionString=ConfigurationSettings.AppSettings["connectionstring"];
使用ConfigurationSettings类的静态属性AppSettings就可以直接方法配置文件中的配置信息。
一个用户自定义的配置节,在配置文件中分为两部分:一是在﹤configSections﹥﹤/ configSections﹥配置节中声明配置节(上面配置文件模式中的“﹤section﹥”),另外是在﹤configSections﹥﹤/configSections﹥之后设置配置节(上面配置文件模式中的“﹤Custom element for configuration section﹥”),有点类似一个变量先声明后使用。声明一个配置文件的语句如下:
﹤section name=" " type=" "/﹥
﹤section﹥:声明新配置节,即可创建新配置节。
name:自定义配置节的名称。
type:自定义配置节的类型,主要包括
System.Configuration.SingleTagSectionHandler、
System.Configuration.DictionarySectionHandler、
System.Configuration.NameValueSectionHandler
不同的type不但设置配置节的方式不一样,最后访问配置文件的操作上也有差异。示例:
﹤?xml version="1.0" encoding="utf-8"?﹥
﹤configuration﹥
﹤configSections﹥
﹤section name="Test1" type="System.Configuration.SingleTagSectionHandler"/﹥
﹤section name="Test2" type="System.Configuration.DictionarySectionHandler"/﹥
﹤section name="Test3" type="System.Configuration.NameValueSectionHandler"/﹥
﹤/configSections﹥
﹤Test1 setting1="Hello" setting2="World"/﹥
﹤Test2﹥
﹤add key="Hello" value="World" /﹥
﹤/Test2﹥
﹤Test3﹥
﹤add key="Hello" value="World" /﹥
﹤/Test3﹥
﹤/configuration﹥
在声明部分使用﹤section name="Test1" type="System.Configuration.SingleTagSectionHandler"/﹥声明了一个配置节它的名字叫 Test1,类型为SingleTagSectionHandler。在设置配置节部分使用﹤Test1 setting1="Hello" setting2="World"/﹥设置了一个配置节,它的第一个设置的值是Hello,第二个值是World,当然还可以有更多。其它的两个配 置节和这个类似。
使过ConfigurationSettings类的静态方法GetConfig来获取自定义配置节的信息。
public static object GetConfig(string sectionName);
C#读取配置文件之访问配置节的代码:
//访问配置节Test1
IDictionary IDTest1 = (IDictionary)ConfigurationSettings.GetConfig("Test1");
string str = (string)IDTest1["setting1"] +" "+(string)IDTest1["setting2"];
//访问配置节Test2
IDictionary IDTest2 =(IDictionary)ConfigurationSettings.GetConfig("Test2");
//访问配置节Test3
NameValueCollection nc=(NameValueCollection)ConfigurationSettings.GetConfig("Test3");
String str =nc.AllKeys[0].ToString()+" "+nc["Hello"];
不同的type通过GetConfig返回的类型不同,具体获得配置内容的方式也不一样。SingleTagSectionHandler ---Systems.Collections.IDictionary
DictionarySectionHandler ---Systems.Collections.IDictionary
NameValueSectionHandler Systems.Collections.Specialized.NameValueCollection
配置节组是使用﹤sectionGroup﹥元素,将类似的配置节分到同一个组中。配置节组声明 部分将创建配置节的包含元素,在﹤configSections﹥元素中声明配置节组,并将属于该组的节置于﹤ sectionGroup﹥元素中。下面是一个包含配置节组的配置文件的例子:
﹤?xml version="1.0" encoding="utf-8" ?﹥
﹤configuration﹥
﹤configSections﹥
﹤sectionGroup name="TestGroup"﹥
﹤section name="Test" type="System.Configuration.NameValueSectionHandler"/﹥
﹤/sectionGroup﹥
﹤/configSections﹥
﹤TestGroup﹥
﹤Test﹥
﹤add key="Hello" value="World"/﹥
﹤/Test﹥
﹤/TestGroup﹥
﹤/configuration﹥
C#读取配置文件之访问配置节组的代码:
NameValueCollection nc=(NameValueCollection)ConfigurationSettings.GetConfig("TestGroup/Test");
C#读写配置文件Config的更多相关文章
- C#中动态读写App.config配置文件
转自:http://blog.csdn.net/taoyinzhou/article/details/1906996 app.config 修改后,如果使用cofnigurationManager立即 ...
- C# 读写App.config配置文件
一.C#项目中添加App.config配置文件 在控制台程序中,默认会有一个App.config配置文件,如果不小心删除掉,或者其他程序需要配置文件,可以通过添加得到. 添加步骤:右键项目名称,选择“ ...
- C# 读写App.config
Jul142013 [C#] 读写App.config配置文件的方法 作者:xieyc 发布:2013-07-14 17:29 字符数:3433 分类:编程 阅读: 39,139 次 ...
- 用ConfigParser模块读写配置文件——Python
对于功能较多.考虑用户体验的程序,配置功能是必不可少的,如何存储程序的各种配置? 1)可以用全局变量,不过全局变量具有易失性,程序崩溃或者关闭之后配置就没了,再者配置太多,将变量分配到哪里也是需要考虑 ...
- 使用ConfigurationManager类读写配置文件
使用ConfigurationManager类 读写配置文件app.config,以下为代码: view plaincopy to clipboard print? using System; usi ...
- Python自动化测试 -ConfigParser模块读写配置文件
C#之所以容易让人感兴趣,是因为安装完Visual Studio, 就可以很简单的直接写程序了,不需要做如何配置. 对新手来说,这是非常好的“初体验”, 会激发初学者的自信和兴趣. 而有些语言的开发环 ...
- python:实例化configparser模块读写配置文件
之前的博客介绍过利用python的configparser模块读写配置文件的基础用法,这篇博客,介绍下如何实例化,方便作为公共类调用. 实例化的好处有很多,既方便调用,又降低了脚本的维护成本,而且提高 ...
- python-ConfigParser模块【读写配置文件】
对python 读写配置文件的具体方案的介绍 1,函数介绍 import configParser 如果Configparser无效将导入的configParser 的C小写 1.1.读取配置文件 - ...
- Java读写配置文件——Properties类的简要使用笔记
任何编程语言都有自己的读写配置文件的方法和格式,Java也不例外. 在Java编程语言中读写资源文件最重要的类是Properties,功能大致如下: 1. 读写Properties文件 2. 读写XM ...
随机推荐
- jquery ztree 刷新后记录折叠、展开状态
ztree :http://www.ztree.me/v3/main.php 项目中用到了这个插件,刚好也有需求 在页面刷新后,保存开始的展开.折叠状态, 其实 dtree: http://www.d ...
- nginx:服务器集群
一.Nginx的事件处理机制 对于一个基本的web服务器来说,事件通常有三种类型,网络事件.信号.定时器. 首先看一个请求的基本过程:建立连接---接收数据---发送数据 . 再次看系统底层的操作 : ...
- Highway Project---zoj3946(最短路SPFA)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5718 题意: 有n个点 m(n,m<=10^5)条路,现在要建 ...
- Mysql中的auto_increment
Mysql中的auto_increment 1.创建 2.使用 [1]如果不写固定列,则必须要插入该列,可以直接写Null,否则会报错 [2]可以直接在auto_increment 列上直接插入显式值 ...
- 线程,协程,IO模型
理论: 1.每创造一个进程,默认里面就有一个线程 2.进程是一个资源单位,而进程里面的线程才是CPU上的一个调度单位 3.一个进程里面的多个线程,是共享这个进程里面的资源的 4.线程创建的开销比进程要 ...
- Redis 监控方案
一.概述 近些天,遇到Redis监控的应用场景,从网上搜罗了一些文章,做了整理. 二.工具列表 2.1 redis-faina 见参考文章1 2.2 redis-live 见参考文章1 2.3 red ...
- Codeforces Round #275 (Div. 2) 题解
A 题: 说的是在(LR) 之间找出ab互质 bc 互质 ac 不互质的 3个数 数据量小直接暴力 #include <iostream> #include <cstdio> ...
- FMS4
先要打开服务器你在本机装的fms,本机就是服务器了!记得现在你的机器既是客户端又是服务端开始===程序===Macromedia===Flash Media Server 2有两个start****, ...
- Python笔记 #05# Package & pip3
datacamp + 日常收集 How to install Package pip3 & What is difference between pip and pip3? Import P ...
- 从IC设计业看中国企业之发展
从IC设计业看中国企业之发展 在半导体领域,国际平均毛利润水平为40%.去年IC设计年会中,中国半导体行业协会IC设计分会理事长魏少军指出,中国IC设计业平均毛利润水平比国际平均水平低了12.39 ...