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

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

更多 时间:2016-7-19 类别:编程学习 浏览量:1709

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

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)