En su forma más simple, app.config es un archivo XML con muchas secciones de configuración predefinidas disponibles y soporte para secciones de configuración personalizadas. Una "sección de configuración" es un fragmento de XML con un esquema destinado a almacenar algún tipo de información.
Los ajustes se pueden configurar mediante secciones de configuración integradas como connectionStrings
o appSettings
. Puede agregar sus propias secciones de configuración personalizadas; Este es un tema avanzado, pero muy poderoso para construir archivos de configuración fuertemente tipados.
Las aplicaciones web suelen tener un archivo web.config, mientras que las aplicaciones GUI / servicio de Windows tienen un archivo app.config.
Los archivos de configuración de nivel de aplicación heredan la configuración de los archivos de configuración global, por ejemplo, machine.config.
Lectura desde la aplicación.
Las cadenas de conexión tienen un esquema predefinido que puede usar. Tenga en cuenta que este pequeño fragmento es en realidad un archivo válido app.config (o web.config):
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="MyKey"
connectionString="Data Source=localhost;Initial Catalog=ABC;"
providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>
Una vez que haya definido su app.config, puede leerlo en código utilizando la clase ConfigurationManager . No se deje intimidar por los ejemplos detallados de MSDN; En realidad es bastante simple.
string connectionString = ConfigurationManager.ConnectionStrings["MyKey"].ConnectionString;
Escribir en la aplicación.
Cambiar los archivos * .config con frecuencia no suele ser una buena idea, pero parece que solo desea realizar una configuración única.
Consulte: Cambiar la cadena de conexión y volver a cargar app.config en tiempo de ejecución que describe cómo actualizar la connectionStrings
sección del archivo * .config en tiempo de ejecución.
Tenga en cuenta que lo ideal sería realizar tales cambios de configuración desde un simple instalador.
Ubicación de la aplicación. Configuración en tiempo de ejecución
P : Supongamos que cambio algo manualmente <value>
en app.config, lo guardo y luego lo cierro. Ahora, cuando voy a mi carpeta bin y ejecuto el archivo .exe desde aquí, ¿por qué no refleja los cambios aplicados?
R : Cuando compila una aplicación, su app.config se copia en el directorio bin 1 con un nombre que coincide con su exe. Por ejemplo, si su exe se llamaba "test.exe", debería haber un "text.exe.config" en su directorio bin. Puede cambiar la configuración sin una recompilación, pero deberá editar el archivo de configuración que se creó en el momento de la compilación, no el archivo app.config original.
1: Tenga en cuenta que los archivos web.config no se mueven, sino que permanecen en la misma ubicación en el momento de la compilación y la implementación. Una excepción a esto es cuando se transforma un web.config .
.NET Core
Se introdujeron nuevas opciones de configuración con .NET Core. La forma en que funcionan los archivos * .config no parece haber cambiado, pero los desarrolladores son libres de elegir paradigmas de configuración nuevos y más flexibles.