Define custom application configuration section in C#
App.config section configuration
<configuration><configSections><sectionGroup name="section1"><section name="nvpconfig" type="MyCompany.NameValueConfiguration,MyCompany"/><section name="customconfig" type="MyCompany.CustomConfiguration,MyCompany" /></sectionGroup></configSections><section1><nvpconfig><properties><add name="id" value="1" /><add name="name" value="One" /><add name="age" value="18" /></properties></nvpconfig><customconfig><list><add id="1" name="One" age="18"/><add id="2" name="Two" age="21"/></list></customconfig></section1></configuration>
Simple name value pair section
namespace MyCompany
{public class NameValueConfiguration : System.Configuration.ConfigurationSection{[ConfigurationProperty("properties")]
public NameValueConfigurationCollection properties
{get
{return (NameValueConfigurationCollection)this["properties"] ?? new NameValueConfigurationCollection();}}}}
Custom section definition
namespace MyCompany
{public class CustomConfiguration : ConfigurationSection{[ConfigurationProperty("list")]
public CustomConfigurationCollection jobs
{get
{return (CustomConfigurationCollection)this["list"] ?? new CustomConfigurationCollection();}}}public class CustomConfigurationCollection : ConfigurationElementCollection{public CustomConfigurationElement this[int index]{get
{return base.BaseGet(index) as CustomConfigurationElement;}set
{if (base.BaseGet(index) != null){base.BaseRemoveAt(index);
}this.BaseAdd(index, value);}}protected override ConfigurationElement CreateNewElement(){return new CustomConfigurationElement();}protected override object GetElementKey(ConfigurationElement element){return ((CustomConfigurationElement) element);
}}public class CustomConfigurationElement : ConfigurationElement{[ConfigurationProperty("id")]
public string Id{get { return (string)this["id"]; }set { this["id"] = value; }}[ConfigurationProperty("name")]
public string Name{get { return (string)this["name"]; }set { this["name"] = value; }}[ConfigurationProperty("age")]
public string Age{get { return (string)this["age"]; }set { this["age"] = value; }}}}
Comments
Post a Comment