• C#创建自定义配置节


    name为自定义节点的名称,type为自定义节点解析文件的命名空间和自定义节处理程序的类名

    1. 在<configSections>节点中注册你所要定义的节点名称及用于处理该节点的配置节处理程序。代码如下:

    <configSections>
    <section name="dbFactory" type="DbFactory.Configuration.DbFactorySection,DbFactory.Configuration"/>
    </configSections>

    2. 在适当的位置添加自定义的节点。代码如下:

      <configSections>
            <section name="dbFactory" type="DbFactory.Configuration.DbFactorySection,DbFactory.Configuration"</configSections>
    
        <dbFactory>
            <default factory="sql"></default>
            <factorys>
                <add name="sql"  assembly="Hello.Data"  class="SqlDbFactory" />
                <add name="oracle" assembly="Hello.Data" class="OracleDbFactory" />             
            </factorys>
        </dbFactory>
    
     public class DefaultElement : ConfigurationElement
        {
            [ConfigurationProperty("factory")]
            public string Factory
            {
                get
                {
                    return this["factory"] as string;
                }
                set
                {
                    this["factory"] = value;
                }
            }
        }
    
    public class FactoryElement : ConfigurationElement
        {
            [ConfigurationProperty("name")]
            public string Name
            {
                get
                {
                    return this["name"] as string;
                }
                set
                {
                    this["name"] = value;
                }
            }
    
            [ConfigurationProperty("assembly")]
            public string Assembly
            {
                get
                {
                    return this["assembly"] as string;
                }
                set
                {
                    this["assembly"] = value;
                }
            }
    
            [ConfigurationProperty("class")]
            public string Class
            {
                get
                {
                    return this["class"] as string;
                }
                set
                {
                    this["class"] = value;
                }
            }
        }
    public class FactoryElements : ConfigurationElementCollection
        {
            protected override ConfigurationElement CreateNewElement()
            {
                return new FactoryElement();
            }
    
            protected override object GetElementKey(ConfigurationElement element)
            {
                return ((FactoryElement)element).Name;
            }
    
            public FactoryElement this[string name]
            {
                get
                {
                    return BaseGet(name) as FactoryElement;
                }
            }
        }
    
    public class DbFactorySection : ConfigurationSection
        {
            [ConfigurationProperty("default")]
            public DefaultElement DefaultFactory
            {
                get
                {
                    return this["default"] as DefaultElement;
                }
                set
                {
                    this["default"] = value;
                }
            }
    
            [ConfigurationProperty("factorys")]
            public FactoryElements Factorys
            {
                get
                {
                    return this["factorys"] as FactoryElements;
                }
    
                set
                {
                    this["factorys"] = value;
                }
            }
        }

    原文链接:

    http://www.cnblogs.com/amylis_chen/p/5985054.html

  • 相关阅读:
    k8s学习笔记之五:Pod资源清单spec字段常用字段及含义
    k8s学习笔记之四:资源清单定义入门
    k8s学习笔记之三:k8s快速入门
    k8s学习笔记之一:kubernetes简介
    k8s学习笔记之二:使用kubeadm安装k8s集群
    centos7安装elasticsearch6.3.x集群并破解安装x-pack
    Centos6搭建sftp服务器
    底层互害模式,深契民心
    你不视我为子女,我凭什么视你为父母
    nodejs的桌面应用(electron)
  • 原文地址:https://www.cnblogs.com/qingchengshiguang/p/12176358.html
Copyright © 2020-2023  润新知