Configuraciones personalizadas en .NET

Estuve leyendo el post de Cristian Prieto y me parecio más que interesante comentarles sobre las configuraciones en .NET y como personalizarlas. Lo primero que debemos hacer es crear nuestra clase de “configuración” y que herede de ConfigurationSection, esto nos va a permitir tener un acceso directo a secciones en particular de nuestro archivo de configuración por medio de clases.

Veamos la definición de que nos proporciona MSDN sobre ConfigurationSection

La clase ConfigurationSection se utiliza para implementar un tipo de sección personalizado. Extienda la clase ConfigurationSection para proporcionar control personalizado y acceso mediante programación a las secciones de configuración personalizadas.

Ahora veamos un ejemplo simple, supongamos que tenemos en nuestro archivo de configuración una sección en particular para las configuraciones generales del sitio, por lo tanto vamos a crear nuestra clase GeneralConfigurationSection que nos permitirá tener acceso a dichas configuraciones:

public class GeneralConfigurationSection : ConfigurationSection
{
    [ConfigurationProperty("titulo")]
    public string Titulo
    {
        get { return this["titulo"].ToString(); }
        set { this["titulo"] = value; }
    }

    [ConfigurationProperty("cantidadMaximoUsuarios")]
    public int CantidadMaximoUsuarios
    {
        get { return (int)this["cantidadMaximoUsuarios"]; }
        set { this["cantidadMaximoUsuarios"] = value; }
    }
}

En el post de Cristian también explica que puede decorarse las ConfigurationProperty con otros atributos, así que les recomiendo que le peguen una mirada.

Lo siguiente será configurar dichas secciones en nuestro web.config, cada una de las secciones registran su tipo de control con una entrada en configSections:

<configSections>
    <section name="general" type="GeneralConfigurationSection, Sebis.UI.Config" />
</configSections>
<general titulo="Mi sitio web" cantidadMaximoUsuarios="100"/>

Ahora simplemente en nuestro código podremos acceder a las mismas de la siguiente manera:

var configuracion = (GeneralConfigurationSection)ConfigurationManager.GetSection("general");
string titulo = configuracion.Titulo;

Sencillo, no?

Anuncios

Un comentario en “Configuraciones personalizadas en .NET

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s