zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Cookie与session
    orm之中介模型
    mysql数据库基础命令——幕布链接
    css——幕布链接
    HTML基础——幕布链接
    js基础——幕布
    三层结构与MVC
    [C++]3-1 得分(Score ACM-ICPC Seoul 2005,UVa1585)
    [C++]环状序列(CircularSequence,ACM/ICPC Seoul 2004,UVa1584)
    [C++]猜数字游戏的提示(Master-Mind Hints,UVa340)
  • 原文地址:https://www.cnblogs.com/qingchengshiguang/p/12176358.html
Copyright © 2011-2022 走看看