小小的储备知识:有关于读取section 节点的数据
2010-11-11 17:57
393 查看
在实际项目中,我们喜欢将一些容易改变的东西写在配置文件中(比如数据链接字符串、比如Ioc的注册等等)
那么怎样读取我们写入配置文件的值,以及怎样对配置文件的值进行处理呢?
下面主要介绍这个功能
链接字符串的读取没有任何新意,直接传统读取方法即可,
之后我们也可以自定义节点进行读取,方法如下
首先需要在configuration.configSections下注册节点使用的程序
此处SectionGroup为父节点,主要用来做容器(接纳子节点),同时定义一个节点TestSection,之后指出调用此节点的时候,使用SSHConsole.TestHandler这个对象进行解析,之后这个对象存在于SSHConsole这个assembly中。
之后我们就可以配置自己的节点了,我做了个简单的配置
主要功能即用NameValueCollection对象读出add节点的属性结合,之后返回这个collection
之后怎样在程序中调用这个呢,也非常简单,使用ConfigurarionManager对象里的GetSection就ok了,
他会自动调用IConfigurationSectionHandler里的Create方法。
那么怎样读取我们写入配置文件的值,以及怎样对配置文件的值进行处理呢?
下面主要介绍这个功能
链接字符串的读取没有任何新意,直接传统读取方法即可,
之后我们也可以自定义节点进行读取,方法如下
首先需要在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上了
相关文章推荐
- 读写xml所有节点个人小结 和 读取xml节点的数据总结
- 关于数据绑定的一个小小的总结:绑定数据到List类型的控件(RadioButtonList,ListBox等),双重绑定。
- 关于PHP读取sql server varchar数据丢失的问题
- 【知识储备】关于java工厂模式浅谈回顾、以及和接口的辨析
- C#提高知识 ADO.NET实体数据模型(3)-关于回滚
- 读写xml所有节点个人小结 和 读取xml节点的数据总结
- 读写xml所有节点个人小结 和 读取xml节点的数据总结
- C#不使用DataSet操作XML,XmlDocument读写xml所有节点及读取xml节点的数据总结
- 关于InputFormat的数据划分、Split调度、数据读取问题
- 关于跨平台信息传输数据-软件开发人员必备知识-软件发展的一大热门趋势
- 关于Mat型数据的三通道读取
- 关于C#和ASP.NET中对App.config和Web.config文件里的[appSettings]和[connectionStrings]节点进行新增、修改、删除和读取相关的操作
- 在python3中,关于redis读取数据带有‘b’的问题
- 关于如何html如何读取后台缓存数据
- <unity>关于快速的数据读取和存储——JSON(qwq)
- 关于创建和删除DAG节点的一些知识
- 关于tensorflow 的数据读取线程管理QueueRunner
- [转] C#下 读取xml节点的数据总结
- 关于vector push_back()与其他方式读取数据的效率对比(转)
- 关于mybatis读取数据库字段text类型时,读出数据为地址,并不是字符串的问题