前言:在添加获取配置文件自定义section 特性的数据时,遇到了问题并把它记录下来:

1. 类型“xxxxx.xxxx.sectionName”不从“System.Configuration.IConfigurationSectionHandler”继承。

这个问题应该算是一个常见的错误问题了。

解决办法:

1. 添加section标签,name为自定义标签名称,type为:类型的命名空间 + 类型,程序集名称

在配置节点下添加

<configSections><section name="RedisConfig" type="Redis.Study.Config.RedisConfigInfo,Redis.Study"/>

2.RedisConfig为自定义标签,他的数据集为(ConfigurationSection)

     <RedisConfig WriteServerList="127.0.0.1:6379" ReadServerList="127.0.0.1:6379" MaxWritePoolSize="60"MaxReadPoolSize="60" AutoStart="true" LocalCacheTime="180" RecordeLog="false"></RedisConfig>
</configSections>

3.创建自定义标签的获取类,注意这里类的继承为数据集ConfigurationSection
这里需要对类的属性和标签属性使用:ConfigurationProperty(“标签属性”) 进行对应

   public  class RedisConfigInfo:ConfigurationSection{#region Property[ConfigurationProperty("WriteServerList")]public string WriteServerList {get { return  (string)this["WriteServerList"]; }set { this["WriteServerList"] = value; }}[ConfigurationProperty("ReadServerList")]public string ReadServerList{get { return (string)this["ReadServerList"]; }set { this["ReadServerList"] = value; }}[ConfigurationProperty("MaxReadPoolSize")]public int MaxReadPoolSize{get { return (int)this["MaxReadPoolSize"]; }set { this["MaxReadPoolSize"] = value; }}[ConfigurationProperty("MaxWritePoolSize")]public int MaxWritePoolSize{get { return (int)this["MaxWritePoolSize"]; }set { this["MaxWritePoolSize"] = value; }}[ConfigurationProperty("AutoStart")]public bool AutoStart{get { return (bool)this["AutoStart"]; }set { this["AutoStart"] = value; }}[ConfigurationProperty("RecordeLog")]public bool RecordeLog{get { return (bool)this["RecordeLog"]; }set { this["RecordeLog"] = value; }}[ConfigurationProperty("LocalCacheTime")]public int LocalCacheTime{get { return (int)this["LocalCacheTime"]; }set { this["LocalCacheTime"] = value; }}#endregion}

4.在此类中添加获取方法对配置文件Section进行获取
返回的 section 含有所有section对应标签值

  #region 获取配置方法public static RedisConfigInfo GetConfig() {RedisConfigInfo section = (RedisConfigInfo)ConfigurationManager.GetSection("RedisConfig");return section;}public static RedisConfigInfo GetConfig(string sectionName) {RedisConfigInfo section = (RedisConfigInfo)ConfigurationManager.GetSection(sectionName);if (section == null) {throw new ConfigurationErrorsException("Section " + sectionName + " is not found");}return section;}#endregion

5.在过程中,主要遇到的问题是 继承问题与标签属性的对应。 当然还有很多更多细致的内容。后续在最一个补充吧

C# 配置文件中添加自定义section标签获取数据相关推荐

  1. html中section与div,如何在html中的section标签内包含div标签

    我正在制作一个完整版块的页面网站,如this.每个页面都有自己的标签.目前我的网页有4个部分(呈现不同的背景颜色).如何在html中的section标签内包含div标签 我的第一部分有一个容器div, ...

  2. vue获取接口数据_c#中HttpWebRequest调用接口获取数据

    c#中HttpWebRequest调用接口获取数据PART  01-封装接口 将post请求进行封装,以便调用使用: /// /// 请求后台地址/// 请求参数/// public string P ...

  3. html5中还有div吗,关于html5中的section标签与div标签的区别(内有实例)

    摘要 腾兴网为您分享:关于html5中的section标签与div标签的区别(内有实例),周公解梦,智学网,学习计时,完美root等软件知识,以及网上预约医院软件,字体预览软件,铁血联盟卷土重来,海量 ...

  4. 图片在section上下居中_HTML5中的section标签是什么?HTML5中的section标签怎么居中?...

    HTML5中的section标签是什么?HTML5中的section标签怎么居中?本篇文章就详细地为大家举出了实例,方便大家的观看,其中的HTML5中section的定义和作用,都有实例在里面.(后面 ...

  5. html5 section与div,关于html5中的section标签与div标签的区别(内有实例)

    本篇文章主要的想大家介绍了关于HTML5 section标签和div标签的区别,section和div的用法看似相近,实则差的也不是太多,有些地方可以相互转换都行,但有些地方只能用section或者只 ...

  6. python读取网络端口数据_在Python中从SNMP端口获取数据

    我专门尝试使用PySNMP库从python中的SNMP端口读取数据.我有兴趣仅通过此库获取数据.这是因为我正在从NetSNMP迁移到PySNMP. 这是我为NetSNMP编写的工作代码,它实际上为我提 ...

  7. Android中连接MySql数据库获取数据的简单实现

    文章目录 背景 demo布局 导入jar包 demo代码实现 权限设置 应用运行的结果 背景 一般情况下,Android与数据库中的数据进行交互都是通过调用api接口来实现的.但是今天我们就来尝试实现 ...

  8. vue 父组件获取接口值传到子组件_vue 项目中 “父组件” 异步获取数据之后,传递给子组件不显示...

    有两个组件:一个为 transaction(父组件),一个为 transactionList (子组件): 上图为一个列表页,为父组件,在父组件里面的data中定义了数据列表, template中: ...

  9. h5 中的 section 标签

    转自 http://www.studyofnet.com/news/331.html 本文导读:<section> 标签定义文档中的节(section.区段).比如章节.页眉.页脚或文档中 ...

最新文章

  1. 大学计算机基础知识点_自学录——大学计算机基础
  2. Zend Studio 默认模板和输入代码提示时间的修改方式
  3. TF之DD:利用Inception模型+GD算法生成带背景的大尺寸、高质量的Deep Dream图片
  4. java并发synchronized 锁的膨胀过程(锁的升级过程)深入剖析(1)
  5. bzoj1532: [POI2005]Kos-Dicing
  6. 小目标神器!TPH-YOLOv5:将Transformer预测加载Yolov5!
  7. rsa java模数_RSA公私钥获取模数和质数
  8. 重操JS旧业第五弹:函数
  9. 全局安装python_python pip 安装与使用
  10. reduce 数据倾斜_Spark(四十)数据倾斜解决方案之将reduce join转换
  11. 【论文复现】使用fastText进行文本分类
  12. AngularJS资源整理收集
  13. 例4.3 数制转换 - 九度教程第44题(进制转换)
  14. cmake安装到指定目录
  15. 通过python爬虫程序爬取未来几日的天气状况
  16. linux修改挂载文件系统权限,Linux配置启动挂载:fstab文件详解
  17. G480改装固态硬盘、光驱变机械硬盘以及装系统(下)
  18. 中国接线端子行业研究与投资前景研究报告(2022版)
  19. SpringBoot——检索
  20. scrapy模拟登陆强智教务系统

热门文章

  1. Deep Learning in Natural Language Processing中文连载(三)
  2. html5设计礼品盒效果,十大包装创意设计网站
  3. Project Server V18 新功能 - 博途多人编程调试
  4. 硅谷来信2-154-社交网络背后的逻辑
  5. CPU和GPU的关系
  6. 比较两个list,分别取出相同或不同的部分
  7. 记·Windows挖矿病毒应急响应
  8. TYPESDK手游聚合SDK服务端设计思路与架构之一:应用场景分析
  9. Java中BorderLayout布局管理器的两种排列实现方式
  10. 十大GURU - Java的故事 缅怀我的偶像bill joy