使用自定义处理程序处理节点的好处我认为是,可以在业务代码中,不必再写一些读取配置文件的非业务代码了,只管取值。如果多处使用该配置节点,其优势更能体现出来。然后突然要增删配置,也只管改节点处理程序的代码了,维护代码更省心了。下面对比实现IConfigurationSectionHandler接口和继承ConfigurationSection的不同。
 
实现IConfigurationSectionHandler接口,给我感觉最直观的感受,代码比继承ConfigurationSection少很多。但缺点是,需要自己写解析xml节点的代码,对于xml配置节点少的来讲还是很方便的。
 
继承ConfigurationSection,优势是,无需自己写解析xml节点的代码,节点的配置必须是节点的属性,不能是InnerText。但缺点是要写的代码多,给我的感觉是,需要对ConfigurationSection的源码要有一定的了解才行,必须按照一定的规则才行,没有IConfigurationSectionHandler来的简单。比如ConfigurationSection区分节点需要用到Key,而如果你指定的key对应的属性的值写成一样的了,这时候就无法获取key属性值相同的后面的节点了。而实现IConfigurationSectionHandler接口不需要Key,.net framework本身解析配置节点是按照ConfigurationSection解析,也不难发现.net framework的配置文件一般是在节点里写属性,不会使用文本元素。
对于IConfigurationSectionHandler和ConfigurationSection的使用可以看看《.net 之美》这本书的第13章。我后面也提供抄下来的源码。
 

CustomConfigSection.zip

对比使用IConfigurationSectionHandler和ConfigurationSection自定义节点和自定义处理程序的更多相关文章

  1. .Net——实现IConfigurationSectionHandler接口定义处理程序处理自定义节点

    除了使用.net里面提供的内置处理程序来处理我们的自定义节点外,我们还可以通过多种方法,来自己定义处理类处理我们的自定义节点,本文主要介绍通过实现IConfigurationSectionHandle ...

  2. Web.config自定义节点configSections

    1.为什么需要自定义节点 为了增加应用程序的可移植性,通常网站需要配置一些自定义的节点,例如:文件上传的路径等,再深入的应用,可以定义工厂方法需要创建的类. 2.configSections使用方法 ...

  3. ASP.NET基础知识汇总之WebConfig自定义节点详细介绍

    之前介绍过Webconfig的具体知识ASP.NET基础知识汇总之WebConfig各节点介绍.今天准备封装一个ConfigHelper类,涉及到了自定义节点的东东,平时虽然一直用,但也没有系统的总结 ...

  4. WebConfig 自定义节点configSections配置信息

    WebConfig 自定义节点configSections配置信息 示例: <configuration>   <configSections>     <!-- For ...

  5. 用mel编写自定义节点的属性编辑器界面

    用mel编写自定义节点的属性编辑器界面比较麻烦,而且网上例子又少,下面给出一个范例,说明基本的格式 // 初始化节点时调用 global proc initControl(string $attrNa ...

  6. Spring源码情操陶冶-自定义节点的解析

    本文承接前文Spring源码情操陶冶-DefaultBeanDefinitionDocumentReader#parseBeanDefinitions,特开辟出一块新地来啃啃这块有意思的骨头 自定义节 ...

  7. vue中element-ui树形控件自定义节点,注意一下

    在项目中用到菜单项编辑删除,在 element-ui自定义节点内容时, 有说明:使用render-content指定渲染函数, 得环境支持 JSX 语法,只要正确地配置了相关依赖,就可以正常运行. 一 ...

  8. Fabric Engine2.0的自定义节点功能

    Fabric Engine是一个多用途的引擎,针对maya等软件写节点写功能很方便.尤其是canvas节点编辑面板,提供了大量现有的功能供用户调用,当然这些节点功能都是可被用户编辑修改的,除此之外还提 ...

  9. ivew数控件Tree自定义节点内容示例分析

    ivew数控件Tree自定义节点内容示例分析 demo地址:https://run.iviewui.com/plcWlM4H <template> <Tree :data=" ...

  10. 制作ACK集群自定义节点镜像的正确姿势

    随着云原生时代的到来,用户应用.业务上云的需求也越来越多,不同的业务场景对容器平台的需求也不尽相同,其中一个非常重要的需求就是使用自定义镜像创建ACK集群. ACK支持用户使用自定义镜像创建Kuber ...

随机推荐

  1. 实验1 c语言开发环境使用和数据类型 运算符 表达式

    #include<stdio.h> #include<stdlib.h> int main() { printf(" O\n"); printf(" ...

  2. CentOS6.5安装与配置JDK-7

    系统环境:centos-6.5 安装方式:rpm安装 软件:jdk-7-linux-i586.rpm 下载地址:http://www.oracle.com/technetwork/java/javas ...

  3. 在centOS上配置web服务器

    centos,web服务,apache,ftp服务器,mysql,makefile (1). 检查系统是否正常 # more /var/log/messages //检查有无系统内核级错误信息 # d ...

  4. 抓包整理————tcp 三次握手[九]

    前言 简单抓包一下3次握手. 正文 握手的目标: 同步sequence 序列化 初始化序列化ISN(Initial Sequence Number) 交换tcp 通信参数 如MSS.窗口比例因子.选择 ...

  5. sql 语句系列(分割ip)[八百章之第十四章]

    前言 单独列出的章节.因为用处比较多. mysql select SUBSTRING_INDEX(SUBSTRING_INDEX("192.168.1.1",".&quo ...

  6. pypinyin 获取拼音,作为智能设备的唤醒比对结果

    from pypinyin import lazy_pinyin,TONE,TONE2,TONE3,NORMAL a = "小七同学" b = "小琦同学" c ...

  7. 本地部署Llama3-8B/72b 并进行逻辑推理测试

    美国当地时间4月18日,Meta开源了Llama3大模型,目前开源版本为8B和70B.Llama 3模型相比Llama 2具有重大飞跃,并在8B和70B参数尺度上建立了LLM模型的新技术.由于预训练和 ...

  8. 一道SQL面试题

    表结构如下 是一张递归格式的表 使用SQL转换成如下格式 SQL实现 使用SQL转换成上图的格式 SQL代码: WITH T_Recur AS ( SELECT Id,1 num, cast(name ...

  9. GaussDB SQL查询语句执行过程解析

    本文分享自华为云社区<[GaussTech第2期]GaussDB SQL查询语句执行过程解析>,作者: GaussDB 数据库. SQL于关系型数据库而言,重要性不言而喻.就像一个乐团的指 ...

  10. 智能logo免费体验|网站Logo这样设计搜索排名跟着提升

    ​简介:一个好的网站logo,不仅让用户一眼知道网站品牌传递的信息,还能提高网站专业度和丰富度,增加SEO搜索排名.今天分享下如何设计一款实用的网站logo.阿里云智能logo设计,在线免费体验log ...