Tuesday, September 19, 2017
.NET, C#

Agregando configsections personalizados al app.config en c#

>helibertoarias helibertoarias
octubre 05, 2013

Durante el desarrollo de las aplicaciones es probable que se requiera definir y leer parámetros iniciales de la configuración de la aplicación desde el archivo Web.config,  para aplicaciones web,  o App.config para aplicaciones de escritorio en .NET. Estas definiciones se pueden realizar de dos maneras; utilizando las secciones predefinidas AppSettings o creando configsections personalizadas.

Utilizando AppSetting 

El .NET Framework provee secciones predefinidas llamadas AppSettings. Esta secciones representan son un diccionario que permite almacenar valores de tipo llave-valor y se definen de la siguiente manera dentro del archivo de configuración.

Los AppSettings son ideales para almacenar valores de forma sencilla en al aplicativo, sin embargo cuando se requiere agregar estructuras más complejas puede ser complicado y poco flexible. Por ejemplo, veamos como se registraría en el archivo de la configuración a través de los AppSetting una lista que contiene varios items y cada item tiene 3 propiedades, esto quedaría de la siguiente manera

Si observan a través de los AppSetting se puede modelar esta situación sin embargo si una vez construido el aplicativo se requiere agregar otro item a la lista sera necesario modificar la aplicación para invocar al key  recientemente agregado, pues los key dentro del AppSetting deben ser únicos. Adicionamente no se cuenta con metodos que permitan definir que valores seran numericos, cadenas de textos o si son valores de enumeraciones pues de requiere implementar esa validación. Para estas situaciones es necesario utilizar secciones personalizadas.

Secciones Personalizadas

Las secciones personalizadas ofrecen más flexibilidad para agregar estructuras complejas para la definición de parámetros iniciales de la aplicación. El ejemplo anterior con AppSetting  se puede definir con secciones personalizadas de la siguiente manera.

Para poder utilizar esta sección personalizada se necesario :

  1. Definir la estructura de la sección personalizada
  2. Crear la clase que represente la sección personalizada
  3. Declarar  en el archivo de configuración las clases que representan y validan la estructura personalizada
  4. Agregar en el archivo de configuración la definición de la estructura personalizada con lo valores requeridos
  5. Leer sección personalizada desde el aplicativo

 1.Definir la estructura de la configsections personalizada

Para este ejemplo vamos a definir una estructura que simula una sección que contiene una única lista la cual puede almacenar n-items, cada item tiene tres atributos que son :

  • property_one : almacenará valores double
  • property_two : almacenará valores string
  • property_three : almacenará valores que deben corresponder a una enumeración definida.

 2. Crear la clase que represente la sección personaliza

Se requieren agregar las referencias System.Configuration a la aplicación. Luego se deben crear tres clases; la primera contiene la definición de la sección, la segunda contiene la definición del item y la ultima contiene la definición de cada propiedad del item.

 3. Declarar en el archivo de configuración las clases que representan y validan la estructura personalizada

En el archivo de configuración, dentro de la sección configSecctions debe declara la sección personalizada.

 4. Agregar en el archivo de configuración la definición de la estructura personalizada con lo valores requeridos

Luego se procede a agregar la sección personalizada al archivo de configuración, el resultado es el siguiente.

 5. Leer sección personalizada desde el aplicativo

Para este ejemplo se imprimirá por consola los valores de las propiedades de los item contenidos en la lista.

Enlace de descarga de la aplicación AppConsoleCustomSection.

(Visitado 358 veces, 1 visitas hoy)
Heliberto Arias
Mi nombre es Heliberto Arias y vivo en Barranquilla, Colombia. Soy desarrollador de software. He estado en el desarrollo de software desde el 2007. Cree este blog en 2013 para compartir lo que voy aprendiendo cada año, en el escribo de tecnologías Microsoft principalmente en C# (y aunque he usado VB declaro que lo detesto) y SQL Server desarrollado aplicaciones y servicios web entre otros.Me gustaría mucho si te suscribes a mis redes en Youtube, Google+, Twitter, e Instagram.

Comments

No comments found!

Leave a Comment

Your email address will not be published.

diecisiete − 2 =

Login
Remember me
Lost your Password?
Password Reset
Login