应用程序配置文件是标准的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的更多相关文章

  1. C#中动态读写App.config配置文件

    转自:http://blog.csdn.net/taoyinzhou/article/details/1906996 app.config 修改后,如果使用cofnigurationManager立即 ...

  2. C# 读写App.config配置文件

    一.C#项目中添加App.config配置文件 在控制台程序中,默认会有一个App.config配置文件,如果不小心删除掉,或者其他程序需要配置文件,可以通过添加得到. 添加步骤:右键项目名称,选择“ ...

  3. C# 读写App.config

    Jul142013 [C#] 读写App.config配置文件的方法 作者:xieyc   发布:2013-07-14 17:29   字符数:3433   分类:编程   阅读: 39,139 次 ...

  4. 用ConfigParser模块读写配置文件——Python

    对于功能较多.考虑用户体验的程序,配置功能是必不可少的,如何存储程序的各种配置? 1)可以用全局变量,不过全局变量具有易失性,程序崩溃或者关闭之后配置就没了,再者配置太多,将变量分配到哪里也是需要考虑 ...

  5. 使用ConfigurationManager类读写配置文件

    使用ConfigurationManager类 读写配置文件app.config,以下为代码: view plaincopy to clipboard print? using System; usi ...

  6. Python自动化测试 -ConfigParser模块读写配置文件

    C#之所以容易让人感兴趣,是因为安装完Visual Studio, 就可以很简单的直接写程序了,不需要做如何配置. 对新手来说,这是非常好的“初体验”, 会激发初学者的自信和兴趣. 而有些语言的开发环 ...

  7. python:实例化configparser模块读写配置文件

    之前的博客介绍过利用python的configparser模块读写配置文件的基础用法,这篇博客,介绍下如何实例化,方便作为公共类调用. 实例化的好处有很多,既方便调用,又降低了脚本的维护成本,而且提高 ...

  8. python-ConfigParser模块【读写配置文件】

    对python 读写配置文件的具体方案的介绍 1,函数介绍 import configParser 如果Configparser无效将导入的configParser 的C小写 1.1.读取配置文件 - ...

  9. Java读写配置文件——Properties类的简要使用笔记

    任何编程语言都有自己的读写配置文件的方法和格式,Java也不例外. 在Java编程语言中读写资源文件最重要的类是Properties,功能大致如下: 1. 读写Properties文件 2. 读写XM ...

随机推荐

  1. Jury Compromise---poj1015(动态规划,dp,)

    题目链接:http://poj.org/problem?id=1015 大致题意: 在遥远的国家佛罗布尼亚,嫌犯是否有罪,须由陪审团决定.陪审团是由法官从公众中挑选的.先随机挑选n 个人作为陪审团的候 ...

  2. Python开发【模块】:BeautifulSoup

    BeautifulSoup BeautifulSoup是一个模块,该模块用于接收一个HTML或XML字符串,然后将其进行格式化,之后遍可以使用他提供的方法进行快速查找指定元素,从而使得在HTML或XM ...

  3. ArcEngine几何变换中的策略模式

    使用策略模式可以减少分支语句,switch...Case,同时便于策略的扩展. 1. ITransform2D接口的Transform方法: [C#]public void Transform ( e ...

  4. [py]函数小结

    函数作用域(函数前向引用) --> 嵌套(递归是一种个特殊的嵌套) --> 递归(回归,递归是一种特殊的迭代) --> 迭代 --> 生成器 --> 匿名函数 递归 一种 ...

  5. Selenium之IE浏览器的启动问题及解决

    前面有篇文章说到启动IE浏览器时,会出现以下错误提示: 浏览器启动之后,页面不会自动输入代码设置的地址,如下图展示 查看报错语句,发现原来是浏览器比例调的不正确,修改浏览器比例为100%即可解决该问题

  6. Parallel Decision Tree

    Decision Tree such as C4.5 is easy to parallel. Following is an example. This is a non-parallel vers ...

  7. try...cath...finally中的return什么时候执行

    一finally可以没有,也可以只有一个.无论有没有发生异常,它总会在这个异常处理结构的最后运行.即使你在try块内用return返回了,在返回前,finally总是要执行,这以便让你有机会能够在异常 ...

  8. Cocos2d-JS实现的2048

    一.前言 2048是之前火过一段时间的休闲数字消除类游戏,它的玩法很简单,上手很容易,可是想到要得到高分却很难,看似简单的游戏却有着很多得分的技巧,想当初这个游戏也曾是陪伴我大学课堂的游戏之一.虽然在 ...

  9. SQL面试题及答案

    我觉得里面有些答案是不正确的,请只作参考 Student(S#,Sname,Sage,Ssex) 学生表       S#:学号:Sname:学生姓名:Sage:学生年龄:Ssex:学生性别 Cour ...

  10. Educational Codeforces Round 47

    A. Game Shopping 签. #include <bits/stdc++.h> using namespace std; #define N 1010 int n, m, c[N ...