Uso de Visual C# para almacenar y recuperar información personalizada de un archivo de configuración de la 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 por su aplicación asociada. Resulta útil cuando se deben definir los datos asociados a una aplicación.
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 supone 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:
Inicie Visual Studio .NET o Visual Studio.
En el menú Archivo, seleccione Nuevo y luego Proyecto.
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.
Asegúrese de que la ventana de Explorador de soluciones esté visible. Si no está visible, presione la combinación de teclas CTRL+ALT+L.
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.
En la lista Agregar nuevo elemento , seleccione Archivo XML.
En el cuadro de texto Nombre , escriba App.configy, a continuación, seleccione Agregar.
Puede usar un archivo de configuración de aplicación para recopilar valores de aplicación personalizados 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>
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 que cualquier otra instrucción del archivo.
using System.Configuration; using System.Collections.Specialized;
Agregue una referencia a System.Configuration.dll siguiendo estos pasos:
- En el menú Proyecto , seleccione Agregar referencia.
- En el cuadro de diálogo Agregar referencia , seleccione la pestaña .NET .
- Busque y seleccione el nombre del componente de
System.Configuration
. - seleccione Aceptar.
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 sección de laMain
siguiente manera:string sAttr;
Para recuperar un valor de una clave especificada de la
<appSettings>
sección del archivo de configuración, use elGet
método de laAppSettings
propiedad de laConfigurationManager
clase . LaConfigurationManager
clase está en el espacio deSystem.Configuration
nombres. Cuando elAppSettings.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 desAttr
cadena. Si no existe una clave para este valor, no se almacena nada ensAttr
.sAttr = ConfigurationManager.AppSettings.Get("Key0");
Para mostrar el valor que la aplicación recupera en la ventana Consola, use
Console.WriteLine
como se indica a continuación:Console.WriteLine("The value of Key0 is "+sAttr);
Puede usar una referencia a la
AppSettings
propiedad para recuperar todos los pares clave-valor de la<appSettings>
sección. Cuando se usa laAppSettings
propiedad , la aplicación devuelve todos los pares clave-valor asociados. Estos pares se almacenan en unNameValueCollection
tipo.NameValueCollection
contiene entradas de clave/valor para cada clave que recupera la aplicación. LaNameValueCollection
clase está en el espacio deSystem.Collections.Specialized
nombres.NameValueCollection sAll ; sAll = ConfigurationManager.AppSettings;
La
AllKeys
propiedad deNameValueCollection
hace referencia a una matriz de cadenas que tiene una entrada para cada clave que recupera la aplicación. Use una construcción foreach para recorrer en iteración laAllKeys
matriz para acceder a cada clave que recupera la aplicación. Cada entrada de clave deAllKeys
es un tipo de datos de cadena.Dentro de la
foreach
construcción, useConsole.WriteLine
para mostrar la clave y su valor asociado en la ventana Consola. La clave actual que procesa la aplicación está ens
. Úselo como índice desAllNameValueCollection
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 tiene como destino .NET Framework 2.0. Si usa .NET Framework 1.0 o .NET Framework 1.1, cambie todas las instancias de la ConfigurationManager
clase a ConfigurationSettings
.
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>
Comprobar que funciona
Presione F5 para que se ejecute 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
Solucionar 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 key de un
<add>
elemento con una K mayúscula en lugar de una k minúscula, 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>.configDonde <ApplicationName> es el nombre de la aplicación. <ApplicationType> es el tipo de aplicación, como
.exe
. Y.config
es el sufijo necesario.
Referencias
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de