Ho le mie sezioni di configurazione personalizzate ma vorrei creare un nuovo elemento che abbia semplici valori chiave/valori al suo interno. Ora ho una versione funzionante ma sembra un bel po 'di codice per un compito così semplice. C'è un modo migliore di fare le cose?Come definire una sezione di configurazione personalizzata di base?
Di seguito è una versione ridotta della mia configurazione e classe di configurazione personalizzata.
web.config
<myRootNode>
<myNode>
<add key="a" value="" />
<add key="b" value="" />
<add key="c" value="" />
...
</myNode>
...any other nodes
</myRootNode>
configurazione personalizzata Classe
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(); }
}
}
Prova questo articolo: [Scrittura della sezione Impostazioni di configurazione personalizzate in C#] (http://www.codearsenal.net/2012/10/writing-custom-configuration-section-in-csharp.html) –