欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【在.NET框架下使用自定义配置设置】,下面是详细的分享!
在.NET框架下使用自定义配置设置
.NET框架通过基于XML的配置使配置设置驾轻就熟。它同时还提供了必要的方法,通过集合类(Collection classes)访问这些设置。
通过一个静态的ConfigurationSettings类可访问实际的配置数据。该类还提供了一个GetConfig()方法,可向一个合适的集合返回一个对象。本文中,我将示范三种可用来访问和存储配置信息的方法。
应用配置数据存储在App.config文件,并由configSections节点定义。每一section都有一个type属性定义。这里我将讨论的3个类型为NameValueSectionHandler、SingleTagSectionHandler和DictionarySectionHandler。你可以用一个sectionGroup元素定义节组。以下是一个配置节定义的例子:
<section name="MyCustomSection"
type="System.Configuration.NameValueSectionHandler"/>
建议使用type="System.Configuration.NameValueSectionHandler,System,Version=1.0.3300.0,Culture=neutral, PublicKeyToken=b77a5c561934e089"
节组是嵌入一个sectionGroup元素的独立配置节。以下是一个节组的例子:
| 以下为引用的内容:
<sectionGroup name="CustomGroup"> |
最后,你所指定的配置节将用于构造存储配置数据的自定义的XML节点。若要向配置节添加数据,只要将该配置节作为一个XML节点包含进去,并用add节点添加Collection数据。下例为一个NameValueSectionHandler配置节:
| 以下为引用的内容:
<MyCustomSection> |
MyCustomSection程序段包含一个命名值集合,其两个入口由key1和key2定义。
SingleTagSectionHandler较容易构造。正如NameValueSectionHandler,配置节可在configSections节点中找到。但在SingleTagSectionHandlers和NameValueSectionHandlers中,配置数据的添加方式是不同的,如下所示:
. . . DictionarySectionHandler与NameValueSectionHandler相似,但前者返回hashtable,后者返回NameValueCollection。当访问大量配置值时,hashtable要快于NameValueCollectio。DictionarySectionHandler与NameValueSectionHandler的构造方式相同,如下例: . . .
以下为引用的内容:
<section name="MySingleTagSection"
type="System.Configuration.SingleTagSectionHandler"/>
. . .
<MySingleTagSection setting1="value1" setting2="value2" setting3="value3"/>
. . .
<section name="MyDictionarySection"
type="System.Configuration.DictionarySectionHandler"/>
. . .
<MyDictionarySection>
<add key="key1" value="value1"/>
</MyDictionarySection>
. . .
我自己用了一下,报错。。原因还挺特别
System.Configuration.DictionarySectionHandler,System,Version=1.0.3300.0,Culture=neutral, PublicKeyToken=b77a5c561934e089
没有办法把type改为以上那段。终于行了。
构造节组的方法与构造单独配置节的方法基本相同,唯一的不同在于前者的自定义节点互相嵌套。借用前面的节组定义,以下是对节组的实现:
| 以下为引用的内容:
<CustomGroup> |
通过System.Configuration.ConfigurationSettings命名空间的GetConfig()方法和自定义配置节的串值来访问应用配置设置,然后将该方法的结果转为合适的类型。
对于SingleTagSectionHandler,将结果转为System.Collections命名空间的IDictionary接口类型。对于NameValueSectionHandler,结果转为在System.Collections.Specialized命名空间中定义的NameValueCollection类型。最后,对于DictionarySectionHandler,结果转为System.Collections命名空间中的Hashtable类型。
对于节组,唯一的区别是,将加上正斜杠和配置节名的节组名作为字符串参数传递给GetConfig()方法,以访问自定义设置。
以下是一个使用这些自定义设置的实例:
| 以下为引用的内容:
System.Collections.IDictionary stsh=(System.Collections.IDictionary) |
以下是用于上面代码的一段配置XML代码:
| 以下为引用的内容:
<?xml version="1.0" encoding="utf-8" ?> |
以上所分享的是关于在.NET框架下使用自定义配置设置,下面是编辑为你推荐的有价值的用户互动:
相关问题:如何自定义一个配置文件的设置界面
答:(1)关闭模式:一旦发生错误,asp.net 把默认的报错页面显示给本地和远程用户。 (2)开启(on)模式:当报错模式属性被设为“开启”时,asp,net把用户自定义的出错页面,而不是其默认的报错页面显示给本地和远程用户。 (3)只有远程启动(RemoteOn... >>详细
相关问题:如何:使用 IConfigurationSectionHandler 创建自...
答:若要完成该操作,您必须创建自己的配置节处理程序。 该处理程序必须是一个实现 System.ConfigurationIConfigurationSectionHandler 接口或 System.ConfigurationConfigurationSection 类的.NET Framework 类。 注意 此主题使用 System.Configura... >>详细
相关问题:如何:使用 IConfigurationSectionHandler 创建自...
答:若要完成该操作,您必须创建自己的配置节处理程序。 该处理程序必须是一个实现 System.Configuration.IConfigurationSectionHandler 接口或 System.Configuration.ConfigurationSection 类的.NET Framework 类。 注意此主题使用 System.Configur... >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
