zoukankan      html  css  js  c++  java
  • 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>");
        }
    }
  • 相关阅读:
    servlet中getWriter和getOutputStream的区别
    一个页面访问错误的问题
    sendRedirect实现原理分析
    servlet开发细节
    tomcat 目录分析
    servlet杂谈
    SQL 查询中的like子句的另一种实现方法,速度比like快
    让复合控件的子控件获得设计时支持
    bug管理工具——Gemini
    HtmlAgilityPack获取#开头节点的XPath
  • 原文地址:https://www.cnblogs.com/zhengwei-cq/p/13211526.html
Copyright © 2011-2022 走看看