Cómo almacenar y recuperar información personalizada de un archivo de configuración de la aplicación mediante C#

Seleccione idioma Seleccione idioma
Id. de artículo: 815786 - Ver los productos a los que se aplica este artículo
Para obtener una versión de Microsoft Visual Basic .NET de este artículo, consulte 313405.
Este artículo hace referencia al siguiente espacio de nombres de la Biblioteca de clases de Microsoft .NET Framework:
  • System.Configuration
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo se describe cómo almacenar información personalizada en un archivo de configuración (.config) que puede recuperar posteriormente durante el tiempo de ejecución por su aplicación asociada. Esto es útil cuando se debe definir los datos que está asociados con una aplicación.

Requisitos

En la lista siguiente se describe el hardware, el software, la infraestructura de red y los service pack recomendados que se necesitarán:
  • Microsoft Windows 2000, Windows XP, Windows Server 2003, Windows Vista o Windows Server 2008
  • Microsoft Visual C#
En este artículo se supone que está familiarizado con los temas siguientes:
  • Lenguaje de marcado extensible (XML)
  • Archivos de configuración de .NET

Crear una aplicación de consola que lee el contenido de un archivo de configuración

Puede almacenar la configuración de la aplicación en el archivo de configuración que está asociado con la aplicación. Archivos de configuración se guardan en XML formato.

Espacios de nombres System.Collections.Specialized en Microsoft .NET Framework y de la System.Configuration incluyen las clases necesarias para recuperar información de un archivo de configuración de aplicación .NET durante el tiempo de ejecución.

Para crear una aplicación de consola que lee el contenido de un archivo de configuración asociada durante el tiempo de ejecución, siga estos pasos:
  1. Inicie Visual Studio .NET o Visual Studio 2005.
  2. En el menú archivo , seleccione nuevo y, a continuación, haga clic en proyecto .
  3. Haga clic en C# en Tipos de proyecto y, a continuación, haga clic en Aplicación de consola , bajo plantillas . Proyecto el nombre ConConfig . De forma predeterminada, C# crea una clase que se denomina programa.

    Nota En Visual Studio .NET 2003, haga clic en Proyectos de Visual C# en Tipos de proyecto y, después, haga clic en Aplicación de consola en plantillas . Proyecto el nombre ConConfig . De forma predeterminada, C# crea una clase denominada Class1.
  4. Asegúrese de que la ventana Explorador de soluciones está visible. Si no está visible, presione la combinación de teclas CTRL + ALT + L.
  5. En el Explorador de soluciones, haga clic con el botón secundario en el nombre del proyecto, haga clic en Agregar y, a continuación, haga clic en Nuevo elemento .
  6. En la lista Agregar nuevo elemento , haga clic para seleccionar Archivo XML .
  7. En el cuadro de texto nombre , escriba app.config y, a continuación, haga clic en Agregar .

    Nota En Visual Studio .NET 2003, haga clic en Abrir .
  8. Puede utilizar un archivo de configuración de la aplicación para recopilar la configuración de aplicación personalizada que se guarda en formato de clave y valor. Puede incluir <add> elementos en el <appsettings> sección de un archivo de configuración asociado. Cada par clave/valor tiene uno <add> elemento. Un <add> elemento tiene el formato siguiente:
    <add key="Key0" value="0" />
    agregar un <appsettings> sección con <add> elementos para el archivo de configuración entre el <configuration> and </configuration> etiquetas.

    Por ejemplo, el siguiente archivo de configuración incluye un <appsettings> sección especifica tres pares de clave y valor:
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
       <appSettings>
          <add key="Key0" value="0" />
          <add key="Key1" value="1" />
          <add key="Key2" value="2" />
       </appSettings>
    </configuration>
    
  9. En el Explorador de soluciones, haga doble clic en Program.cs para mostrar la ventana código. Agregue las instrucciones siguientes a su módulo de código.

    Nota Estas instrucciones deben aparecer antes de cualquier otra instrucción en el archivo
    using System.Configuration;
    using System.Collections.Specialized;
  10. Agregue una referencia a System.Configuration.dll. Para ello, siga estos pasos:
    1. En el menú proyecto , haga clic en Agregar referencia .
    2. En el cuadro de diálogo Agregar referencia , haga clic en la ficha .NET .
    3. Busque y seleccione el nombre de componente de System.Configuration.
    4. Haga clic en Aceptar .
  11. Para contener el valor de una clave de archivo de configuración en el <appsettings> sección del archivo de configuración, declare una variable de cadena en la sección principal como sigue:
     string  sAttr ;
  12. Para recuperar un valor de una clave especificada de la <appsettings> sección del archivo de configuración, utilice el método Get de la propiedad AppSettings de la clase ConfigurationManager . La clase ConfigurationManager es espacio de nombres System.Configuration . Cuando el método AppSettings.Get recibe un parámetro de entrada de cadena que contiene una clave, la aplicación recupera el valor asociado con la clave.

    El código siguiente recupera el valor del atributo de Key0 del archivo de configuración asociada. El código a continuación, coloca este valor en la variable de cadena sAttr . Si una clave no existe para este valor, no se almacena nada en sAttr .
    sAttr = ConfigurationManager.AppSettings.Get("Key0");
  13. Para mostrar el valor que la aplicación recupera en la ventana de la consola, utilice Console.WriteLine como sigue:
    Console.WriteLine("The value of Key0 is "+sAttr);
  14. Puede utilizar una referencia a la propiedad AppSettings para recuperar todas las parejas de clave/valor el <appsettings> sección. Cuando se utiliza la propiedad AppSettings , la aplicación devuelve todos los pares clave/valor asociado. Estos pares se almacenan en un tipo NameValueCollection . NameValueCollection contiene entradas de clave y valor para cada clave que se recupera de la aplicación. La clase NameValueCollection está en el espacio de nombres System.Collections.Specialized .
    NameValueCollection sAll ;
    sAll = ConfigurationManager.AppSettings;
  15. La propiedad AllKeys de NameValueCollection hace referencia a una matriz de cadena que tiene una entrada para cada clave que se recupera de la aplicación. Utilizar una construcción de foreach para recorrer la matriz AllKeys para tener acceso a cada clave que se recupera de la aplicación. Cada entrada de clave de AllKeys es un tipo de datos de cadena.

    Dentro de la construcción de foreach utilice Console.WriteLine para mostrar la clave y su valor asociado en la consola de ventana. La clave actual que procesa la aplicación está en "s". Usar esto como un índice en la sAllNameValueCollection para obtener su valor asociado.
       foreach (string s in sAll.AllKeys)
          Console.WriteLine("Key: "+ s + " Value: " + sAll.Get(s));
       Console.ReadLine();

Lista de código completa

using System;
using System.Configuration;
using System.Collections.Specialized;

namespace ConConfig
{
    class Program
    {
        static void Main(string[] args)
        {
            string sAttr;

            // Read a particular key from the config file            
            sAttr = ConfigurationManager.AppSettings.Get("Key0");
            Console.WriteLine("The value of Key0: " + sAttr);

            // Read all the keys from the config file
            NameValueCollection sAll;
            sAll = ConfigurationManager.AppSettings;

            foreach (string s in sAll.AllKeys)
                Console.WriteLine("Key: " + s + " Value: " + sAll.Get(s));
           Console.ReadLine();
       }
    }
}
Nota Este código destina a .NET Framework 2.0. Si está utilizando .NET Framework 1.0 o .NET Framework 1.1, cambie todas las instancias de la clase ConfigurationManager ConfigurationSettings .

Completar el archivo de configuración listado (ConConfig.exe.config)

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <appSettings>
      <add key="Key0" value="0" />
      <add key="Key1" value="1" />
      <add key="Key2" value="2" />
   </appSettings>
</configuration>

Comprobar que funciona

Presione F5 para ejecutar el código. La ventana de consola debe mostrar los pares de clave y valor de la <appsettings> archivo de sección de configuración asociada como sigue:
The value of Key0: 0
Key: Key0 Value:0
Key: Key1 Value:1
Key: Key2 Value:2
		

Solucionar problemas

  • El archivo de configuración se guarda en formato XML. Asegúrese de que siga todas las reglas de sintaxis XML. recuerde que el lenguaje XML distingue entre mayúsculas y minúsculas. Si el código XML no está bien formado, o si un elemento está mal escrito, recibirá una excepción System.Configuration.Configuration.

    Por ejemplo, si agrega el atributo clave de un <add> elemento con una mayúscula "K" en lugar de una minúscula "k", o si el <appsettings> sección aparece como <appsettings> (con una mayúscula "A" en lugar de una minúscula "a"), recibirá un mensaje de error.
  • El archivo de configuración debe guardarse en la misma carpeta que su aplicación asociada.
  • Debe utilizar la siguiente sintaxis para el nombre de archivo de configuración:
    ApplicationName. ApplicationType .config
    donde ApplicationName es el nombre de la aplicación, ApplicationType es el tipo de aplicación (por ejemplo, .exe) y .config es el sufijo necesario.

Referencias

Para obtener más información, consulte los sitios Web de Microsoft Developer Network (MSDN) siguientes:
Propiedad ConfigurationSettings.AppSettings
http://msdn.microsoft.com/en-us/library/system.configuration.configurationsettings.appsettings(vs.71).aspx
Espacio de nombres System.Configuration
http://msdn.microsoft.com/en-us/library/system.configuration(vs.71).aspx

Propiedades

Id. de artículo: 815786 - Última revisión: miércoles, 16 de julio de 2008 - Versión: 3.1
La información de este artículo se refiere a:
  • Microsoft Visual C# 2008 Express Edition
  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Palabras clave: 
kbmt kbsweptvs2008 kbcollections kbcollectionclass kbconfig kbnamespace kbhowtomaster kbprogramming KB815786 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 815786

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com