Compartir a través de


Uso de Visual C# para almacenar y recuperar información personalizada de un archivo de configuración de aplicación

En este artículo se presenta cómo almacenar información personalizada de un archivo de configuración que puede recuperar más adelante durante el tiempo de ejecución mediante su aplicación asociada. Resulta útil cuando debe definir los datos asociados a una aplicación.

Nota:

El código de este artículo tiene como destino .NET Framework 2.0 y versiones posteriores. Para saber a qué versiones específicas se aplica la ConfigurationManager clase, consulte la sección Se aplica a .

Versión original del producto: Visual C#
Número de KB original: 815786

Requisitos

En la lista siguiente se describen el hardware y el software recomendados que necesita:

  • Microsoft Windows
  • Visual C#

En este artículo se da por supuesto que está familiarizado con los temas siguientes:

  • Lenguaje de marcado extensible (XML)
  • Archivos de configuración de .NET

Creación de una aplicación de consola que lea un archivo de configuración

Puede almacenar la configuración de la aplicación en el archivo de configuración asociado a la aplicación. Los archivos de configuración se guardan en formato XML.

Los System.Configuration espacios de nombres y System.Collections.Specialized de .NET Framework 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 lea el contenido de un archivo de configuración asociado durante el tiempo de ejecución, siga estos pasos:

  1. Inicie Visual Studio .NET o Visual Studio.

  2. En el menú Archivo , seleccione Nuevoy haga clic en Proyecto.

  3. Seleccione Visual C# en Tipos de proyecto y, a continuación, seleccione Aplicación de consola en Plantillas. Asigne al proyecto el nombre ConConfig. De forma predeterminada, Visual C# crea una clase denominada Program.

    Nota:

    En Visual Studio .NET, seleccione Proyectos de Visual C# en Tipos de proyecto y, a continuación, seleccione Aplicación de consola en Plantillas. Asigne al proyecto el nombre ConConfig. De forma predeterminada, Visual 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 Explorador de soluciones, haga clic con el botón derecho en el nombre del proyecto, seleccione Agregar y, a continuación, seleccione Nuevo elemento.

  6. En la lista Agregar nuevo elemento , seleccione Archivo XML.

  7. En el cuadro de texto Nombre , escriba App.config y, a continuación, seleccione Agregar.

  8. Puede usar un archivo de configuración de aplicación para recopilar la configuración de la aplicación personalizada que guarde en formato de clave-valor. Puede incluir <add> elementos en la <appSettings> sección de un archivo de configuración asociado. Cada par clave-valor tiene un <add> elemento. Un <add> elemento tiene el formato siguiente:

    <add key="Key0" value="0" />
    

    Agregue una <appSettings> sección con <add> elementos al archivo de configuración entre las <configuration> etiquetas y </configuration> .

    Por ejemplo, el siguiente archivo de configuración incluye una <appSettings> sección que especifica tres pares clave-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 Explorador de soluciones, haga doble clic en Program.cs para mostrar la ventana de código. Agregue las siguientes instrucciones al módulo de código.

    Nota:

    Estas instrucciones deben aparecer antes de cualquier otra instrucción del archivo.

    using System.Configuration;
    using System.Collections.Specialized;
    
  10. Agregue una referencia a System.Configuration.dll siguiendo estos pasos:

    1. En el menú Proyecto, seleccione Agregar referencia.
    2. En el cuadro de diálogo Agregar referencia , seleccione la pestaña .NET .
    3. Busque y seleccione el nombre del componente de System.Configuration.
    4. seleccione Aceptar.
  11. Para contener el valor de una clave de archivo de configuración en la <appSettings> sección del archivo de configuración, declare una variable de cadena en la Main sección como se indica a continuación:

    string sAttr;
    
  12. Para recuperar un valor para una clave especificada de la <appSettings> sección del archivo de configuración, use el Get método de la propiedad de la AppSettings clase ConfigurationManager. La clase ConfigurationManager está en el espacio de nombres System.Configuration. Cuando el AppSettings.Get método recibe un parámetro de entrada de cadena que contiene una clave, la aplicación recupera el valor asociado a la clave.

    El código siguiente recupera el valor del Key0 atributo del archivo de configuración asociado. A continuación, el código coloca este valor en la variable de sAttr cadena. Si no existe una clave para este valor, no se almacena nada en sAttr.

    sAttr = ConfigurationManager.AppSettings.Get("Key0");
    
  13. Para mostrar el valor que recupera la aplicación en la ventana Consola, use Console.WriteLine como se indica a continuación:

    Console.WriteLine("The value of Key0 is "+sAttr);
    
  14. Puede usar una referencia a la AppSettings propiedad para recuperar todos los pares clave-valor de la <appSettings> sección. Cuando se usa la AppSettings propiedad , la aplicación devuelve todos los pares clave-valor asociados. Estos pares se almacenan en un NameValueCollection tipo. NameValueCollection contiene entradas de clave y valor para cada clave que recupera la aplicación. La clase NameValueCollection está en el espacio de nombres System.Collections.Specialized.

    NameValueCollection sAll ;
    sAll = ConfigurationManager.AppSettings;
    
  15. La AllKeys propiedad de hace referencia a una matriz de NameValueCollection cadenas que tiene una entrada para cada clave que recupera la aplicación. Use una construcción foreach para recorrer en iteración la AllKeys matriz para acceder a cada clave que recupera la aplicación. Cada entrada de clave de AllKeys es un tipo de datos de cadena.

    Dentro de la foreach construcción, use Console.WriteLine para mostrar la clave y su valor asociado en la ventana Consola. La clave actual que procesa la aplicación está en s. Úselo como índice en 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();
        }
    }
}

Lista completa de archivos de configuración (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>

Comprobación de que funciona

Presione F5 para ejecutar el código. La ventana Consola debe mostrar los pares clave-valor de la <appSettings> sección del archivo de configuración asociado de la siguiente manera:

The value of Key0: 0
Key: Key0 Value:0
Key: Key1 Value:1
Key: Key2 Value:2

Solución de problemas

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

    Por ejemplo, si agrega el atributo de clave de un <add> elemento con una K mayúscula en lugar de un k en minúsculas, o si la <appSettings> sección aparece como <AppSettings> (con una A mayúscula 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 usar la sintaxis siguiente para el nombre del archivo de configuración:
    <ApplicationName>.<ApplicationType.config>

    Donde <ApplicationName> es el nombre de la aplicación. <ApplicationType> es el tipo de aplicación, como .exe. Y .config es el sufijo necesario.

Referencias