Tengo mis propias secciones de configuración personalizadas pero me gustaría crear un nuevo elemento que tenga claves/valores simples dentro de él. Ahora tengo una versión que funciona pero parece bastante código para una tarea tan simple. ¿Hay una forma mejorada de hacer las cosas?¿Cómo se define una sección básica de configuración personalizada?
A continuación se muestra una versión eliminada de mi configuración y clase de configuración personalizada.
Clase web.config
<myRootNode>
<myNode>
<add key="a" value="" />
<add key="b" value="" />
<add key="c" value="" />
...
</myNode>
...any other nodes
</myRootNode>
configuración personalizada
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(); }
}
}
Pruebe este artículo: [Escribir la sección Configuración de configuración personalizada en C#] (http://www.codearsenal.net/2012/10/writing-custom-configuration-section-in-csharp.html) –