IConfigurationSectionHandler 接口的用法
今天终于花了点时间了解一下IConfigurationSectionHandler 接口的用法 ,引以入门.
首先建立一 RobsunConfigSectionHandler 专案,代码如下 :
namespace RobsunConfigSectionHandler
{
public class RobsunParaSectionHandler:IConfigurationSectionHandler
{
#region IConfigurationSectionHandler 成員 public object Create(object parent, object configContext, XmlNode section)
{
RobsunPara para = new RobsunPara(); foreach (XmlNode xn in section.ChildNodes)
{
switch (xn.Name)
{
case "path":
para.Path = xn.SelectSingleNode("@value").InnerText;
break;
case "companyName":
para.CompanyName = xn.SelectSingleNode("@value").InnerText;
break;
case "isPrivate":
para.IsPrivate = bool.Parse(xn.SelectSingleNode("@attribute").InnerText);
break;
}
} return para;
} #endregion
}
}
RobsunParaSectionHandler类实现 IConfigurationSectionHandler 接口.
RobsunPara类(实际就是参数类)的代码如下:
public class RobsunPara
{
#region code
private string _path = "";
private string _companyName = "";
private bool _isPrivate = false; public string Path
{
get { return _path; }
set { _path = value; }
} public string CompanyName
{
get { return _companyName; }
set { _companyName = value; }
} public bool IsPrivate
{
get { return _isPrivate; }
set { _isPrivate = value; }
}
#endregion
}
ConfigurationHander类的创建工作已完成,次handler的工作必须配合如下配置文件的格式(其实的配置文件依赖handler).这里是web.config(三种配置文件任一,web.config,App.config,machine.config ,前两种会覆盖machine.config,当然这里是没法子在App.config配置了 ~Q~ )
<configuration> <configSections>
<sectionGroup name="robsunGroup">
<section name="robsunSection" type="RobsunConfigSectionHandler.RobsunParaSectionHandler,RobsunConfigSectionHandler"/>
</sectionGroup>
</configSections> <robsunGroup>
<robsunSection>
<path value="NONE"/>
<companyName value="Robsun"/>
<isPrivate attribute="true"/>
</robsunSection>
</robsunGroup> <appSettings/>
<connectionStrings/>
<system.web>
...
准备代码都已完成.剩下的就是拿来用了....
这里为了简单起见,就直接在page_load里实现了:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
RobsunConfigSectionHandler.RobsunPara para
= ConfigurationManager.GetSection("robsunGroup/robsunSection") as RobsunConfigSectionHandler.RobsunPara; Response.Write("CompanyName: " + para.CompanyName + "<br>");
Response.Write("Path: " + para.Path + Environment.NewLine + "<br>");
Response.Write("isPrivate: " + para.IsPrivate.ToString() + "<br>");
}
}
IConfigurationSectionHandler 接口的用法的更多相关文章
- .Net——实现IConfigurationSectionHandler接口定义处理程序处理自己定义节点
除了使用.net里面提供的内置处理程序来处理我们的自己定义节点外,我们还能够通过多种方法,来自己定义处理类处理我们的自己定义节点,本文主要介绍通过实现IConfigurationSectionHand ...
- .Net——实现IConfigurationSectionHandler接口定义处理程序处理自定义节点
除了使用.net里面提供的内置处理程序来处理我们的自定义节点外,我们还可以通过多种方法,来自己定义处理类处理我们的自定义节点,本文主要介绍通过实现IConfigurationSectionHandle ...
- BinaryOperator<T>接口的用法示例+BiFunction
转自http://www.tpyyes.com/a/java/2017/1015/285.html 转自https://blog.csdn.net/u014331288/article/details ...
- Mybateis mapper 接口 example 用法
注意:希望通过此篇文章分享 可以使大家对mapper接口以及example 用法更加深入理解 MyBatis的Mapper接口以及Example的实例函数及详解 一.mapper接口中的方法解析 ma ...
- android中必备的接口回调用法
1 ,这个方法很常见,本人觉得也很实用,分享下吧 public class DirverDistanceTool { public void getDirverDistance(LatLng star ...
- 【WCF】自定义错误处理(IErrorHandler接口的用法)
当被调用的服务操作发生异常时,可以直接把异常的原始内容传回给客户端.在WCF中,服务器传回客户端的异常,通常会使用 FaultException,该异常由这么几个东东组成: 1.Action:在服务调 ...
- java中set接口的用法
java中的set接口有如下的特点: 不允许出现重复元素: 集合中的元素位置无顺序: 有且只有一个值为null的元素. 因为java中的set接口模仿了数学上的set抽象,所以,对应的数学上set的特 ...
- JAVA的abstract修饰符 && 接口interface用法 && 抽象类和interface的差别
abstract修饰符可以修饰类和方法. (1)abstract修饰类,会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以做为对象变量声明的类型(见后面实例),也就是编译时类型.抽象类就相当于 ...
- java中Set类接口的用法
在Java中使用Set,可以方便地将需要的类型,以集合类型保存在一个变量中.主要应用在显示列表. Set是一个不包含重复元素的collection.更确切地讲,set 不包含满足 e1.equals( ...
- Java中Enumeration接口的用法
Enumeration是java.util中的一个接口类,在Enumeration中封装了有关枚举数据集合的方法,与Iterator差不多,用来遍历集合中的元素 但是枚举Enumeration只提供 ...
随机推荐
- 字节跳动基于Doris的湖仓分析探索实践
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 Doris简介 Doris是一种MPP架构的分析型数据库,主要面向多维分析,数据报表,用户画像分析等场景.自带分析 ...
- Axure 母版与元件
需要重复使用的元件,建议创建成母版: 如果修改了母版,所有页面中的母版元件将会被同步修改 元件:添加后,所有的 Axure 都可以使用 母版:只适用当前的 Axure 原型 拖放行为: 任意位置:可以 ...
- pytest参数化及应用
Pytest 安装pytest #安装pytest pip install pytest #检查是否安装 pytest --version 创建第一个测试 def func(x): return x ...
- 【Django-Vue】手机号是否存在接口 多方式登录接口 腾讯云短信介绍和申请 api与sdk
目录 昨日回顾 今日内容 0 登录注册功能设计 1 短信登录接口 视图类 2 多方式密码登录接口 视图类 序列化类 路由 3 腾讯云短信介绍和申请 3.1api与sdk 补充 练习 昨日回顾 # 你的 ...
- BBS项目(二):首页导航条搭建 修改密码功能 首页数据展示 个人站点页面
目录 首页导航条搭建 session判断用户是否登录 更换验证码 导航条更多功能 退出系统 修改密码前端页面 使用大模态框 编写模态框 前端表单编写 修改密码后端逻辑 接受参数 验证参数 修改密码 首 ...
- 转载--阿里云ECS自建K8S集群
一.概述(官方建议) 集群规划 目前在创建Kubernetes集群时,存在着使用很多小规格ECS的现象,这样做有以下弊端: 小规格Woker ECS的网络资源受限. 如果一个容器基本可以占用一个小规格 ...
- protobuf安装、编译和使用
protobuf使用简单示例 一.安装 首先下载protobuf的安装包,我这里使用的是protobuf-cpp-3.21.5.tar.gz 解压安装包 tar -xzf protobuf-cpp-3 ...
- poi 4.11版本 word模板操作
写代码之前先说说遇到的问题,之前word模板是使用poi 3.9的包实现的,之后又写了exlce上传下载的功能使用的是poi 4.11的版本,他们之间融合的时候发现包冲突,总有一个功能不能使用,之后发 ...
- 8 Englishi 词根
测一测 physical obesity skinny sliny stout skeleton external appearance recede unprecededented feinge e ...
- 《3D编程模式》写书-第6次记录
大家好,这段时间我完成了对初稿的第二轮修改,已经把稿子提交给编辑了 这里是所有的的写书记录: <3D编程模式>写书记录 本轮修改主要进行了下面的修改: 修改UML描述 增加依赖关系 角色之 ...