jueves, 8 de noviembre de 2012

¿Cómo leer y escribir parámetros de configuración en C#?


¿Cómo leer y escribir parámetros de configuración en C#?

  1. Archivos de configuración estilo XML: en aplicaciones web se nombran “web.config” y en desktop “app.config”.  En general, contienen un conjunto de pares parámetro-valor.
  2. Un grupo de funciones suministradas por el namespace System.Configuration.
Ejemplo de archivo de configuración:
1xml version="1.0" encoding="utf-8" ?>
2<configuration>
3  <appSettings file="">
4    <clear />
5    <add key="miParametro" value="Mi valor" />
6  </appSettings>
7</configuration>
Paso a paso:
  • Añadir al proyecto una referencia a “System.Configuration” (Project -> Add Reference …).
  • Añadir al código:  “using System.Configuration”.
  • Para leer un parámetro de configuración:
1string miValor = ConfigurationManager.AppSettings["miParametro"];
  • Para añadir un parámetro nuevo al archivo de configuración:
1Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
2config.AppSettings.Settings.Add("miParametro""Mi valor");
3config.Save(ConfigurationSaveMode.Modified);
  • Para modificar y persistir un parámetro de configuración:
1Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
2config.AppSettings.Settings["miParametro"].Value = "Mi valor";
3config.Save(ConfigurationSaveMode.Modified);
Nota: en las operaciones de escritura (añadir y modificar) desde Visual Studio, el instinto nos lleva inmediatamente a revisar los cambios en el archivo original ”app.config” (asumiendo aplicación desktop).  Este contiene los parámetros iniciales de configuración; el archivo que se modifica realmente esnombre_de_app.exe.Config que está en la carpeta bin\Debug que es el archivo real de configuración cuando se distribuye la aplicación.
Aquí he mostrado el método de trabajo más sencillo con configuraciones en .NET.  Los archivos de configuración pueden llegar a ser muy sofisticados permitiendo la categorización de los parámetros en secciones, por ejemplo para las cadenas de conexión a bases de datos.  Realmente, los ejemplos anteriores operan sobre los parámetros correspondientes a una sección específica , lo cual es suficiente para una gran mayoría de las aplicaciones prácticas.