您的位置:首页 > 编程学习 > ASP.NET

web.config自定义配置节点,将多个节点合并

更多 2016/7/19 来源:ASP.NET学习浏览量:1186
学习标签: ASP.NET
本文导读:在ASP.NET编程中,经常需要在web.config配置节点,如果web.config中的配置信息非常多,则管理起来比较麻烦,这种情况,我们可以自定义配置节点,将功能类似的配置信息,放在同一个自定义配置节点下面,下面介绍如何在ASP.NET中的web.config自定义配置节点,即如何读取这些节点信息

一、在web.config文件中,用得比较多的就是appSettings节点下配

 

1、例如:

 

2、读取这些配置信息的方法

 

 

ConfigurationManager.AppSettings[“OAuth_QQ_ClientId”]; 
ConfigurationManager.AppSettings[“OAuth_QQ_CallbackUrl”];
ConfigurationManager.AppSettings[“OAuth_QQ_ClientScrert”];
ConfigurationManager.AppSettings[“OAuth_Sina_ClientId”];
ConfigurationManager.AppSettings[“OAuth_Sina_ClientScrert”];
ConfigurationManager.AppSettings[“OAuth_Sina_CallbackUrl”];
........

 

3、缺点:配置信息多时,管理不方便

 

二、使用web.config自定义配置节点,将功能类似的配置信息,归类统一,例如

 

1、在 <configSections> 节点下,添加一个名为 customCon 的 <section>节点

 

2、在 <configuration> 节点下,添加一个customCon 自定义的节点,与上面的 name 名称相同

 

 
XML 代码   复制

  <!--自定义配置-->
  <customCon>
    <!--邮件配置-->
    <mail mailPwd="" mailHost="" mailFrom="" />
    <!--QQ登陆-->
    <oAuthQQ OAuth_QQ_ClientId="ee" OAuth_QQ_ClientScrert="" OAuth_QQ_CallbackUrl="http://www.studyofnet.com" />
    <!--新浪登录-->
    <oAuthSina OAuth_Sina_ClientId="" OAuth_Sina_ClientScrert="" OAuth_Sina_CallbackUrl="http://m.studyofnet.com" />
  </customCon>

 

3、在 Studyofnet.Com.Common 命名空间下,添加一个 CustomCon类 (注意:需要继承ConfigurationSection)

 
 
C# 代码   复制

    /// <summary>
    /// 自定义配置
    /// </summary>
    public class CustomCon : ConfigurationSection
    {
        /// <summary>
        /// 邮箱设置
        /// </summary>
        [ConfigurationProperty("mail", IsRequired = true)]
        public MailElement Mail
        {
            get { return (MailElement)this["mail"]; }
        }

        /// <summary>
        /// qq登录
        /// </summary>
        [ConfigurationProperty("oAuthQQ", IsRequired = true)]
        public OAuthQQElement OAuthQQ
        {
            get { return (OAuthQQElement)this["oAuthQQ"]; }
        }

        /// <summary>
        /// 新浪登录
        /// </summary>
        [ConfigurationProperty("oAuthSina", IsRequired = true)]
        public OAuthSinaElement OAuthSina
        {
            get { return (OAuthSinaElement)this["oAuthSina"]; }
        }
    }

 

4、继续添加 MailElement、OAuthQQElement、OAuthSinaElement 类的定义,里面分别是 mail标签、oAuthQQ标签、oAuthSina标签 的属性

 

 
C# 代码   复制

    MailElement(邮箱)

    OAuthQQElement(QQ)

    OAuthSinaElement(新浪)

 

5、读取这些自定义属性值的方法

 

C# 代码   复制

 CustomCon custom = (CustomCon)ConfigurationManager.GetSection("customCon");
 string url = custom.OAuthQQ.CallbackUrl;//获取值
 string id = custom.OAuthQQ.ClientId;//获取值

 

6、效果如图

 

 

 

收藏
419
很赞
53