C# 配置文件中添加自定义section标签获取数据
前言:在添加获取配置文件自定义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标签获取数据相关推荐
- html中section与div,如何在html中的section标签内包含div标签
我正在制作一个完整版块的页面网站,如this.每个页面都有自己的标签.目前我的网页有4个部分(呈现不同的背景颜色).如何在html中的section标签内包含div标签 我的第一部分有一个容器div, ...
- vue获取接口数据_c#中HttpWebRequest调用接口获取数据
c#中HttpWebRequest调用接口获取数据PART 01-封装接口 将post请求进行封装,以便调用使用: /// /// 请求后台地址/// 请求参数/// public string P ...
- html5中还有div吗,关于html5中的section标签与div标签的区别(内有实例)
摘要 腾兴网为您分享:关于html5中的section标签与div标签的区别(内有实例),周公解梦,智学网,学习计时,完美root等软件知识,以及网上预约医院软件,字体预览软件,铁血联盟卷土重来,海量 ...
- 图片在section上下居中_HTML5中的section标签是什么?HTML5中的section标签怎么居中?...
HTML5中的section标签是什么?HTML5中的section标签怎么居中?本篇文章就详细地为大家举出了实例,方便大家的观看,其中的HTML5中section的定义和作用,都有实例在里面.(后面 ...
- html5 section与div,关于html5中的section标签与div标签的区别(内有实例)
本篇文章主要的想大家介绍了关于HTML5 section标签和div标签的区别,section和div的用法看似相近,实则差的也不是太多,有些地方可以相互转换都行,但有些地方只能用section或者只 ...
- python读取网络端口数据_在Python中从SNMP端口获取数据
我专门尝试使用PySNMP库从python中的SNMP端口读取数据.我有兴趣仅通过此库获取数据.这是因为我正在从NetSNMP迁移到PySNMP. 这是我为NetSNMP编写的工作代码,它实际上为我提 ...
- Android中连接MySql数据库获取数据的简单实现
文章目录 背景 demo布局 导入jar包 demo代码实现 权限设置 应用运行的结果 背景 一般情况下,Android与数据库中的数据进行交互都是通过调用api接口来实现的.但是今天我们就来尝试实现 ...
- vue 父组件获取接口值传到子组件_vue 项目中 “父组件” 异步获取数据之后,传递给子组件不显示...
有两个组件:一个为 transaction(父组件),一个为 transactionList (子组件): 上图为一个列表页,为父组件,在父组件里面的data中定义了数据列表, template中: ...
- h5 中的 section 标签
转自 http://www.studyofnet.com/news/331.html 本文导读:<section> 标签定义文档中的节(section.区段).比如章节.页眉.页脚或文档中 ...
最新文章
- 大学计算机基础知识点_自学录——大学计算机基础
- Zend Studio 默认模板和输入代码提示时间的修改方式
- TF之DD:利用Inception模型+GD算法生成带背景的大尺寸、高质量的Deep Dream图片
- java并发synchronized 锁的膨胀过程(锁的升级过程)深入剖析(1)
- bzoj1532: [POI2005]Kos-Dicing
- 小目标神器!TPH-YOLOv5:将Transformer预测加载Yolov5!
- rsa java模数_RSA公私钥获取模数和质数
- 重操JS旧业第五弹:函数
- 全局安装python_python pip 安装与使用
- reduce 数据倾斜_Spark(四十)数据倾斜解决方案之将reduce join转换
- 【论文复现】使用fastText进行文本分类
- AngularJS资源整理收集
- 例4.3 数制转换 - 九度教程第44题(进制转换)
- cmake安装到指定目录
- 通过python爬虫程序爬取未来几日的天气状况
- linux修改挂载文件系统权限,Linux配置启动挂载:fstab文件详解
- G480改装固态硬盘、光驱变机械硬盘以及装系统(下)
- 中国接线端子行业研究与投资前景研究报告(2022版)
- SpringBoot——检索
- scrapy模拟登陆强智教务系统