c# 配置文件之configSections配置(三)
使用IConfigurationSectionHandler配置configSections
·步骤1:定义一个实体类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace ConsoleApplication1
{
/// <summary>
/// 说明:
/// 创建日期:2016/10/27 8:54:11
/// 创建人:曹永承
/// </summary>
public class Conn
{
public string DataBase { get; set; } public string Server { get; set; } public string UserId { get; set; } public string Password { get; set; } public override string ToString()
{
return string.Format("server={0};database={1};user id={2};password={3}", Server, DataBase, UserId, Password);
}
}
}
步骤2:定义一个ConnSectionHandler类实现IConfigurationSectionHandler接口
using System.Configuration;
using System.Xml; namespace ConsoleApplication1.config
{
/// <summary>
/// 说明:
/// 创建日期:2016/10/27 8:52:35
/// 创建人:曹永承
/// </summary>
public class ConnSectionHandler : IConfigurationSectionHandler
{
public object Create(object parent, object configContext, XmlNode section)
{
Conn conn = new Conn(); if (section != null)
{
foreach (XmlNode node in section.ChildNodes)
{
switch (node.Name)
{
case "server":
conn.Server = node.SelectSingleNode("@value").InnerText;
break;
case "database":
conn.DataBase = node.SelectSingleNode("@value").InnerText;
break;
case "userid":
conn.UserId = node.SelectSingleNode("@value").InnerText;
break;
case "password":
conn.Password = node.SelectSingleNode("@value").InnerText;
break;
} }
} return conn;
}
}
}
步骤3:配置xml
<configSections>
<section name="conn" type="ConsoleApplication1.config.ConnSectionHandler,ConsoleApplication1"/>
</configSections>
<conn>
<server value="(local)"/>
<database value="testDB"/>
<userid value="sa"/>
<password value="123456"/>
</conn>
步骤4:测试代码
Conn conn = ConfigurationManager.GetSection("conn") as Conn ;
Console.WriteLine(conn);
Console.ReadKey();
输出结果:

c# 配置文件之configSections配置(三)的更多相关文章
- c# 配置文件之configSections配置
对于小型项目来说,配置信息可以通过appSettings进行配置,而如果配置信息太多,appSettings显得有些乱,而且在开发人员调用时,也不够友好,节点名称很容易写错,这时,我们有几种解决方案 ...
- c# 配置文件之configSections配置(二)
在很多时候我们需要自定义我们自己的自定义App.config 文件,而微软为我们提供了默认的 System.Configuration.DictionarySectionHandler System. ...
- 【转】MyBatis学习总结(三)——优化MyBatis配置文件中的配置
[转]MyBatis学习总结(三)——优化MyBatis配置文件中的配置 一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置信息写在了MyBatis的con ...
- PLSQL连接ORACLE配置字符串简介 oracle网络配置 三个配置文件 listener.ora、sqlnet.ora、tnsnames.ora原理解释
PLSQL连接ORACLE配置字符串简介 oracle网络配置 三个配置文件 listener.ora.sqlnet.ora.tnsnames.ora原理解释 oracle网络配置三个配置文件 lis ...
- MyBatis(三):核心配置文件的重要配置
本文是按照狂神说的教学视频学习的笔记,强力推荐,教学深入浅出1便就懂!b站搜索狂神说即可 https://space.bilibili.com/95256449?spm_id_from=333.788 ...
- App.config和Web.config配置文件的自定义配置节点
前言 昨天修改代码发现了一个问题,由于自己要在WCF服务接口中添加了一个方法,那么在相应调用的地方进行更新服务就可以了,不料意外发生了,竟然无法更新.左查右查终于发现了问题.App.config配置文 ...
- (转)struts2.0配置文件、常量配置详解
一.配置: 在struts2中配置常量的方式有三种: 在struts.xml文件中配置 在web.xml文件中配置 在sturts.propreties文件中配置 1.之所以使用struts.prop ...
- 第四百零二节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署,uwsgi安装和启动,nginx的安装与启动,uwsgi与nginx的配置文件+虚拟主机配置
第四百零二节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署,uwsgi安装和启动,nginx的安装与启动,uwsgi与nginx的配置文件+虚拟主机配置 软件版本 uwsgi- ...
- 【RAC】 RAC For W2K8R2 安装--共享磁盘的配置(三)
[RAC] RAC For W2K8R2 安装--共享磁盘的配置(三) 一.1 BLOG文档结构图 一.2 前言部分 一.2.1 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学 ...
随机推荐
- asp获取文件名和扩展名的函数代码
<% '获取文件名(不含扩展名) Function getFilename(text)text = Left(text,inStrRev(text,".")-1)getFil ...
- C#使用二叉树算法设计一个无限分级的树表
效果图: 数据库: 操作树的示意图: 控制器代码: using Dw.Business; using Dw.Entity; using Dw.Utilities; using System; usin ...
- HAL驱动库学习-SPI
如何使用SPI库1 声明SPI hanlde, 例如: SPI_HandleTypeDef hspi2 通过实现HAL_SPI_MspInit()函数初始化底层资源 以下两个必须进行初始化 a 使能s ...
- iOS开发Hessian
HessianKit使用参考资料比较少,通过摸索,把测试过程贴出来,代码很乱,未整理,先实现功能,再应用到项目中.供新手参考.如有问题,跟帖指正... HessianService与Java Serv ...
- ECMAScript 6教程 (二) 对象和函数
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出 原文连接,博客地址为 http://www.cnblogs.com/jasonnode/ .该系列课程是 ...
- Ajax中dataType数据类型
今天项目中使用Ajax向后台保存数据,其中dataType为'json';当请求成功后,没有走success回调,反而走了error:数据库已经成功保存数据了. 后来搞半天才知道原来dataType指 ...
- 解读HTML 5新语法 提高语义价值
HTML 5的新标记 设计者们需要完成的任务是要给HTML 5开发一个更丰富的和更有含义的语义,当然可以想象这种新方案将会是很灵活和很高效的,同时与所有的现代互联网标准相适应.下面就是一些将要在HTM ...
- [问题2014A06] 解答
[问题2014A06] 解答 用反证法, 设存在 \(n\) 阶正交阵 \(A,B\), 使得 \[A^2=cAB+B^2,\,\,c\neq 0.\cdots(1)\] 在 (1) 式两边同时左乘 ...
- 简单方法判断JavaScript对象为null或者属性为空
对已声明但未初始化的和未声明的变量执行typeof,都返回undefined,null表示一个空对象指针,typeof操作会返回object 首先说下null与undefined区别: 对已声明但未初 ...
- Python virtualenv安装库报错SSL: CERTIFICATE_VERIFY_FAILED
Python virtualenv安装库报错SSL: CERTIFICATE_VERIFY_FAILED 问题描述 使用pip按照virtualenv报错,如下: pip install virtua ...