使用 ConfigurationSection 创建自定义配置节

时间:2021-10-24 12:54:32

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

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

使用 ConfigurationSection 创建自定义配置节  <!--//////////////////////////////////////////////////////////////////////////////////////////////-->

使用 ConfigurationSection 创建自定义配置节  <configSections>

使用 ConfigurationSection 创建自定义配置节    <sectionGroup name="mygroup">

使用 ConfigurationSection 创建自定义配置节      <section name="mysection"

使用 ConfigurationSection 创建自定义配置节                       type="ConfigSection"

使用 ConfigurationSection 创建自定义配置节                        allowDefinition="Everywhere"

使用 ConfigurationSection 创建自定义配置节                         allowLocation="true"/>

使用 ConfigurationSection 创建自定义配置节    </sectionGroup>

使用 ConfigurationSection 创建自定义配置节  </configSections>

使用 ConfigurationSection 创建自定义配置节  <!--//////////////////////////////////////////////////////////////////////////////////////////////-->

使用 ConfigurationSection 创建自定义配置节

使用 ConfigurationSection 创建自定义配置节  <mygroup>

使用 ConfigurationSection 创建自定义配置节    <mysection  user="用户" password="密码">

使用 ConfigurationSection 创建自定义配置节      <element element1="属性1" element2="属性2"></element>

使用 ConfigurationSection 创建自定义配置节    </mysection>

使用 ConfigurationSection 创建自定义配置节  </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"]; }

    }





}




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

使用 ConfigurationSection 创建自定义配置节ConfigSection config = (ConfigSection)ConfigurationManager.GetSection("mygroup/mysection");

使用 ConfigurationSection 创建自定义配置节        Response.Write("用户名:"+config.User.ToString() + "密码:" + config.PassWord.ToString() + "元素属性:" + config.Element.Element1.ToString() + config.Element.Element2.ToString());