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 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学 ...
随机推荐
- 使用uiautomator做UI测试
转载~~~~~~~~~~~~~~~~~~~~~~~~ 若有侵权,请及时联系本博主,博主将第一时间撤销 在Android 4.1发布的时候包含了一种新的测试工具–uiautomator,uiautoma ...
- swif tableview全选
func selctAll() { idArr.removeAll() for var i = 0; i<sellingArr.count; i++ { let path: NSIndexPat ...
- Maven打包pom里面配置exclude 排除掉环境相关的配置文件
Maven打包pom里面配置exclude 排除掉环境相关的配置文件 有几种方式:1. 打包时,指定环境参数把环境的配置文件复制过去2. 不打包所有的环境相关的配置文件,直接由运维的人维护 可以在上传 ...
- IIS 服务没有及时响应启动或控制请求
微软刚发布的补丁的原因,据说补丁KB939373.KB942831都会影响iis的正常运行,但是我在“添加或删除程序里”(要勾选:显示更新,才能会显示所打的补丁)没有发现以上两个补丁.最后,我发现把K ...
- 高性能完成端口socket服务(IOCP)
1. Winsock IO模型之IOCP模型 来自csdn blog,版权声明:本文为博主原创文章,未经博主允许不得转载. 我这里记录下,不算转载吧 http://blog.csdn.net/lost ...
- WampServer中MySQL中文乱码解决
1.修改mysql的my.ini文件: 在 [client] 下面增加 default-character-set=utf8 在 [mysqld] 下面增加: character_set_server ...
- hasOwnProperty
var Person = function(){ this.name = "nike"; this.age = "20" } var person = new ...
- 【双标记线段树】bzoj1798维护序列seq
一.题目 描述 老师交给小可可一个维护数列的任务,现在小可可希望你来帮他完成. 有长为N的数列,不妨设为a1,a2,-,aN .有如下三种操作形式: (1)把数列中的一段数全部乘一个值; (2)把数列 ...
- NSTimer(定时器)
[_timer fire]; fire并不是启动一个定时器,只是执行一次定时器事件(触发一次定时器事件)而已; 注意:不影响定时器设置的时间,即,不影响之前设定的使用,定时器该怎么跑就怎么跑,fire ...
- 《BI项目笔记》创建多维数据集Cube(1)
有两个事实表,因此就有两个度量值组,并且向导将为非维度键的事实表中的每一个数值列创建一个度量值.由于我们这里不需要那么多,所以只选择部分度量值.另外要注意,度量值的名称源于事实表中的列,所有名称由可能 ...