您的位置:首页 > 其它

小小的储备知识:有关于读取section 节点的数据

2010-11-11 17:57 393 查看
在实际项目中,我们喜欢将一些容易改变的东西写在配置文件中(比如数据链接字符串、比如Ioc的注册等等)

那么怎样读取我们写入配置文件的值,以及怎样对配置文件的值进行处理呢?

下面主要介绍这个功能

链接字符串的读取没有任何新意,直接传统读取方法即可,

之后我们也可以自定义节点进行读取,方法如下

首先需要在configuration.configSections下注册节点使用的程序

<configSections>
<sectionGroupname="TestSectionGroup">
<sectionname="TestSection"type="SSHConsole.TestHandler,SSHConsole"/>
</sectionGroup>
</configSections>


此处SectionGroup为父节点,主要用来做容器(接纳子节点),同时定义一个节点TestSection,之后指出调用此节点的时候,使用SSHConsole.TestHandler这个对象进行解析,之后这个对象存在于SSHConsole这个assembly中。

之后我们就可以配置自己的节点了,我做了个简单的配置

<?xmlversion="1.0"encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroupname="TestSectionGroup">
<sectionname="TestSection"type="SSHConsole.TestHandler,SSHConsole"/>
</sectionGroup>
</configSections>

<TestSectionGroup>
<TestSection>
<addkey="name"value="NameTesting"></add>
<addkey="version"value="1.0"></add>
</TestSection>
</TestSectionGroup>
</configuration>
紧接着我们就可以在程序部分。
首先,我们需要一个TestHandler对象,来处理这个节点,并且这个对象必须要实现IConfigurationSectionHandler这个接口
这个接口就只有一个方法
objectCreate(objectparent,objectconfigContext,XmlNodesection)
之后就可以在此进行处理了
比如我这里

publicclassTestHandler:IConfigurationSectionHandler
{
publicobjectCreate(objectparent,objectconfigContext,XmlNodesection)
{
NameValueCollectionconfigs;
NameValueSectionHandlerbaseHandler=newNameValueSectionHandler();
configs=(NameValueCollection)baseHandler.Create(parent,configContext,section);
returnconfigs;
}
}


主要功能即用NameValueCollection对象读出add节点的属性结合,之后返回这个collection

之后怎样在程序中调用这个呢,也非常简单,使用ConfigurarionManager对象里的GetSection就ok了,
他会自动调用IConfigurationSectionHandler里的Create方法。

staticvoidMain(string[]args)
{
Objecto=ConfigurationManager.GetSectio("TestSectionGroup/TestSection");

}

此时这里的o就是Create返回的那个configs了
===================
有何意义?
-------------
可以在web.config配置某个section,之后这个section里的内容为其他某个单独的xml页面的地址
我们就可以通过IConfigurationSectionHandler的Create方法处理,
读出这个独立的Xml,进行相应的操作,
配置就不用全写在web.config或app.config上了

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐