.NET 框架中使用配置文件(转)

本文介绍如何使用.NET框架的配置系统,包括NameValueSectionHandler、SingleTagSectionHandler和DictionarySectionHandler等配置节类型,以及如何通过ConfigurationSettings类访问这些配置。

.NET框架通过基于XML的配置使配置设置驾轻就熟。它同时还提供了必要的方法,通过集合类(Collection classes)访问这些设置。

通过一个静态的ConfigurationSettings类可访问实际的配置数据。该类还提供了一个GetConfig()方法,可向一个合适的集合返回一个对象。本文中,我将示范三种可用来访问和存储配置信息的方法。

应用配置数据存储在App.config文件,并由configSections节点定义。每一section都有一个type属性定义这里我将讨论的3个类型为NameValueSectionHandler、SingleTagSectionHandlerDictionarySectionHandler。你可以用一个sectionGroup元素定义节组。以下是一个配置节定义的例子:

type="System.Configuration.NameValueSectionHandler"/>

节组是嵌入一个sectionGroup元素的独立配置节。以下是一个节组的例子:

type="System.Configuration.NameValueSectionHandler"/>

最后,你所指定的配置节将用于构造存储配置数据的自定义的XML节点。若要向配置节添加数据,只要将该配置节作为一个XML节点包含进去,并用add节点添加Collection数据。下例为一个NameValueSectionHandler配置节:


MyCustomSection程序段包含一个命名值集合,其两个入口由key1key2定义。

SingleTagSectionHandler较容易构造。正如NameValueSectionHandler,配置节可在configSections节点中找到。但在SingleTagSectionHandlersNameValueSectionHandlers中,配置数据的添加方式是不同的,如下所示:

. . .

type="System.Configuration.SingleTagSectionHandler"/>
. . .

. . .

DictionarySectionHandlerNameValueSectionHandler相似,但前者返回hashtable,后者返回NameValueCollection。当访问大量配置值时,hashtable要快于NameValueCollectioDictionarySectionHandlerNameValueSectionHandler的构造方式相同,如下例:

. . .

type="System.Configuration.DictionarySectionHandler"/>
. . .



. . .

构造节组的方法与构造单独配置节的方法基本相同,唯一的不同在于前者的自定义节点互相嵌套。借用前面的节组定义,以下是对节组的实现:






通过System.Configuration.ConfigurationSettings命名空间的GetConfig()方法和自定义配置节的串值来访问应用配置设置,然后将该方法的结果转为合适的类型。

对于SingleTagSectionHandler,将结果转为System.Collections命名空间的IDictionary接口类型。对于NameValueSectionHandler,结果转为在System.Collections.Specialized命名空间中定义的NameValueCollection类型。最后,对于DictionarySectionHandler,结果转为System.Collections命名空间中的Hashtable类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值