我们可以通过用自己的 XML 配置元素来扩展标准的 ASP.NET 配置设置集,要完成这一功能,我们必须实现继承System.Configuration.ConfigurationSection
类来实现自定义配置节,在1.0中当然也可以通过IconfigurationSectionHandler 接口创建自定义配置节!这里我们主要学一下通过ConfigurationSection类来实现简单的配置处理程序.

      先看一下在web.config文件中的配置情况,在这里有两个元素,第一个mysection,有两个属性user,password,第二个也有两个属性element1,和element2。配置比较简单。

  <!--//////////////////////////////////////////////////////////////////////////////////////////////-->

  <configSections>

    <sectionGroup name="mygroup">

      <section name="mysection"

                       type="ConfigSection"

                        allowDefinition="Everywhere"

                         allowLocation="true"/>

    </sectionGroup>

  </configSections>

  <!--//////////////////////////////////////////////////////////////////////////////////////////////-->



  <mygroup>

    <mysection  user="用户" password="密码">

      <element element1="属性1" element2="属性2"></element>

    </mysection>

  </mygroup>

理解配置文件结构后,我们就需要用继承自System.Configuration.ConfigurationSection的基类来实现简单的配置类ConfigSection,在2.0中,我们只需要这一个类就能实现完成配置,下面请看代码:

using System;

using System.Data;

using System.Configuration;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;



/// <summary>

/// ConfigSection 的摘要说明

/// </summary>

public class ConfigSection:ConfigurationSection

{

    public ConfigSection()

    {

        //

        // TODO: 在此处添加构造函数逻辑

        //

    }

[ConfigurationProperty("user",DefaultValue="yanghong",IsRequired=true)]

    public string User

    {

        get { return (string)this["user"]; }

        set { this["user"] = value; }

    }



    [ConfigurationProperty("password",DefaultValue="password",IsRequired=true)]

    public string PassWord

    {

        get {  return (string)this["password"]; }

        set { this["password"] = value; }

    }



    [ConfigurationProperty("element")]

    public elementinfo Element

    {

        get { return  (elementinfo)this["element"]; }

        set {this["element"] = value; }

    }

}

 public class elementinfo : ConfigurationElement

{

    public elementinfo()    { }





    [ConfigurationProperty("element1", DefaultValue = "element1", IsRequired = true)]

    public string Element1

    {

        get { return (string)this["element1"]; }

    }



    [ConfigurationProperty("element2",DefaultValue="element2",IsRequired=true)]

    public string Element2

    {

        get { return (string)this["element2"]; }

    }





}




通过下面的代码就可以获得在配置文件中设置的值了

ConfigSection config = (ConfigSection)ConfigurationManager.GetSection("mygroup/mysection");

        Response.Write("用户名:"+config.User.ToString() + "密码:" + config.PassWord.ToString() + "元素属性:" + config.Element.Element1.ToString() + config.Element.Element2.ToString());

使用 ConfigurationSection 创建自定义配置节的更多相关文章

  1. C#创建自定义配置节

    在.Net应用程序中,我们经常看到VS为我们生成的项目工程中都会含有nfig或者nfig这样的文件.这个文件就是我们所说的应用程序配置文件.在这个文件里面记述着一些与我们的应用程序相关的信息,如:数据 ...

  2. ASP.NET使用ConfigurationSection在Web.Config创建自定义配置节集合

    核心代码 using System; using System.Data; using System.Configuration; using System.Web; using System.Web ...

  3. ASP.NET使用ConfigurationSection在Web.Config创建自定义配置节

    主要代码,一定要继续System.Configuration.ConfigurationSection,具体的节点名称可以自行修改 using System; using System.Data; u ...

  4. C#如何使用和开发自定义配置节

    在日常的程序设计中,如何灵活和巧妙地运用配置信息是一个成功的设计师的首要选择.这不仅是为了程序设计得更灵活性和可扩展性,也是为了让你的代码给人以清新的感觉.程序中的配置信息一般放在应用程序的app.c ...

  5. C#创建自定义配置节点

    转载:http://www.educity.cn/develop/495003.html 在.Net应用程序中我们经常看到VS为我们生成的项目工程中都会含有app.config或者web.connfi ...

  6. C# 创建自定义配置节点1

    转载:http://www.educity.cn/develop/495003.html 在.Net应用程序中我们经常看到VS为我们生成的项目工程中都会含有app.config或者web.connfi ...

  7. 迁移appseting.json创建自定义配置中心

    创建一个自定义的配置中心,将框架中各类配置,迁移至数据库,支持切换数据库,热重载. 说在前面的话 自使用.net Core框架以来,配置大多存在json文件中: [框架默认加载配置]文件为appset ...

  8. C# App.config 自定义 配置节

    1)App.config <?xml version="1.0" encoding="utf-8" ?><configuration>  ...

  9. .NET:自定义配置节

    背景 对于编译型应用程序来说,参数化程序行为是非常有必要的,.NET有其标准的配置方法,我们可以可以扩展. 示例 代码 using System; using System.Collections; ...

随机推荐

  1. convirt介绍

    convirt2.0是一款使用python和jquery结合编写的其于web的集中管理xen服务的程序.该程序在xen 社区项目,管理项目中被使用的量很高,convirt开发有开源版本与企业版本,企业 ...

  2. JavaScrip数组去重--终极版

    第一种 var arr = [1,2,3,4,1,2,4,5,6];console.log(arr); Array.prototype.unique = function() { var n = [] ...

  3. JAVA常见集合类

    菜鸟教程 http://www.runoob.com/java/java-collections.html TreesSet原理: https://blog.csdn.net/wangyunpeng0 ...

  4. 【QQ输入法】QQ输入法-剪切板 释放内存

    发现一个神奇的情况: 清除和关闭的操作: 1. 2.右键 3.点击 4.清空 5.最后需要关闭 QQ输入法的进程

  5. MFC获取纸张大小

    BOOL CPrintView::GetPageSize(CSize &nRetVal)  // CPrintView 是自己创建的类       {          PRINTDLG FA ...

  6. 网页中输出漂亮格式的Php数组神器

    写网页的时候经常需要在页面中打印数组,但格式特别难看,看看一个html神器吧<pre>标签,能非常标准的显示数组格式 使用的时候只需要这样打印你的数组就OK了,太好用了,神器! 只需要两句 ...

  7. C++中try_catch_throw的做异常处理

    C++中try_catch_throw的做异常处理 选择异常处理的编程方法的具体原因如下: . 把错误处理和真正的工作分开来: . 代码更易组织,更清晰,复杂的工作任务更容易实现: . 毫无疑问,更安 ...

  8. Ceph源码解析:读写流程

    转载注明出处,整理也是需要功夫的,http://www.cnblogs.com/chenxianpao/p/5572859.html 一.OSD模块简介 1.1 消息封装:在OSD上发送和接收信息. ...

  9. iOS: performXXX的几种方法总结:

    performXXX的用法: 视图切换: ※根据segue标识符切换视图 performSegueWithIdentifier:(NSString *) identifier sender:(id) ...

  10. 一起talk C栗子吧(第二十七回:C语言实例--插入排序)

    各位看官们,大家好.上一回中咱们说的是冒泡排序的样例.这一回咱们说的样例是:插入排序. 闲话休 提,言归正转.让我们一起talk C栗子吧. 看官们,我们这回说的插入排序和前一回说的冒泡排序一样.也是 ...