Ok, hasta el momento ya vimos como crear nuestras propias secciones y valores de configuración, además de darnos una vuelta por las opciones de crear y agregar elementos a nuestras secciones personalizadas. Hoy continuaremos indagando un poco más en el mundo de las configuraciones personalizadas en .NET.
Grupos de Secciones
Imagínense que la configuración de nuestra aplicación es mucho más compleja de lo usual y que además de elementos personalizados necesitamos agregar “subsecciones” de configuración. Dentro de la .Net Framework es algo común en ASP.NET. Crear secciones de configuración no puede ser más fácil, basta con crear las secciones como lo hemos estado haciendo hasta el momento. Tomemos por ejemplo las siguientes dos secciones:
public class SampleSection : ConfigurationSection {
[ConfigurationProperty("name", IsRequired = true)]
public string Name {
get { return (string) base["name"]; }
set { base["name"] = value; }
}
[ConfigurationProperty("port", DefaultValue = 80)]
public int Port {
get { return (int) base["port"]; }
set { base["port"] = value; }
}
}
public class AnotherSection : ConfigurationSection {
[ConfigurationProperty("times", IsRequired = true)]
public int TimesPerDay {
get { return (int) base["times"]; }
set { base["times"] = value; }
}
}
Basta ahora con crear un ConfigurationSectionGroup para obtener ambas secciones dentro de un mismo grupo
public class SampleSectionGroup : ConfigurationSectionGroup {
[ConfigurationProperty("sample")]
public SampleSection Sample {
get { return (SampleSection) Sections["sample"]; }
}
[ConfigurationProperty("another")]
public AnotherSection Another {
get { return (AnotherSection) Sections["another"]; }
}
}
Agregarla en el web.config es un poco más laborioso pero continúa siendo sencillo
<configuration>
<configSections>
<sectionGroup name="sampleGroup" type="WebApplication2.SampleSectionGroup">
<section name="sample" type="WebApplication2.SampleSection"/>
<section name="another" type="WebApplication2.AnotherSection"/>
</sectionGroup>
</configSections>
<sampleGroup>
<sample name="sample" port="31" />
<another times="5" />
</sampleGroup>
</configuration>
Creo que para estas alturas el usarla en el código debe ser algo sencillo y "straighforward"

Pingback: Tweets that mention .NET y Configuraciones – Parte 3 | IDisposable Thoughts -- Topsy.com
Pingback: .NET y configuraciones – Parte 1 | IDisposable Thoughts
Pingback: .NET y Configuraciones – Parte 6 | IDisposable Thoughts