代码之家  ›  专栏  ›  技术社区  ›  David

如何定义基本的自定义配置部分?

  •  5
  • David  · 技术社区  · 15 年前

    我有自己的自定义配置部分,但希望创建一个包含简单键/值的新元素。现在我有了一个有效的版本,但是对于这样一个简单的任务来说,它似乎有很多代码。有没有更好的做事方式?

    下面是我的配置和自定义配置类的剥离版本。

    Web.CONFIG

    <myRootNode>
        <myNode>
            <add key="a" value="" />
            <add key="b" value="" />
            <add key="c" value="" />
            ...
        </myNode>
        ...any other nodes
    </myRootNode>
    

    自定义配置类

    public class MyRootNode : ConfigurationSection
    {
        [ConfigurationProperty("myNode")]
        public MyNodeElement MyNode
        {
            get { return (MyNodeElement)this["myNode"]; }
        }
    }
    
    [ConfigurationCollection(typeof(BaseElement), AddItemName = "add")]
    public class MyNodeElement : ConfigurationElementCollection
    {
        protected override ConfigurationElement CreateNewElement()
        {
            return new BaseElement();
        }
    
        protected override object GetElementKey(ConfigurationElement element)
        {
            return ((BaseElement)element).Key;
        }
    
        public BaseElement this[int index]
        {
            get { return this.BaseGet(index) as BaseElement; }
        }
    }
    
    public class BaseElement : ConfigurationElement
    {
        [ConfigurationProperty("key", IsRequired = true, IsKey = true)]
        public string Key
        {
            get { return this["key"].ToString(); }
        }
    
        [ConfigurationProperty("value", IsRequired = true)]
        public string Value
        {
            get { return this["value"].ToString(); }
        }
    }
    
    2 回复  |  直到 11 年前