Archivo App.Config en la aplicación de consola C #

92


Tengo una aplicación de consola en la que quiero escribir el nombre de un archivo.

Process.Start("blah.bat");

Normalmente, tendría algo así en la aplicación de Windows escribiendo el nombre del archivo en el archivo 'blah.bat'de Configuración en Propiedades .
Sin embargo, aquí no encontré ningún archivo de configuración y agregué un archivo app.config para el mismo propósito.

No estoy seguro de qué escribir aquí en app.config , eso me llevaría a lograr algo similar a Windows Forms .

Por ejemplo: en formularios de Windows. Process.Start(Properties.Settings.Default.BatchFile);
donde BatchFilees una cadena en el archivo de configuración en Propiedades.

usuario1240679
fuente

Respuestas:

213

Puede agregar una referencia a System.Configurationen su proyecto y luego:

using System.Configuration;

luego

string sValue = ConfigurationManager.AppSettings["BatchFile"];

con un app.configarchivo como este:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <appSettings>
       <add key="BatchFile" value="blah.bat" />
   </appSettings>
</configuration>
xxbbcc
fuente
11
ConfigurationSettings.AppSettings["blah.bat"]está disponible pero advierte que está obsoleto. Cuando intento usar ConfigurationManagerlo anterior, aparece un error que dice que ConfigurationManager no existe en el contexto actual. : - /
user1240679
69
Asegúrese de agregar también una referencia a System.Configuration: el usingdurective solo funciona cuando tiene una referencia al ensamblado que está tratando de usar.
xxbbcc
1
comentario tardío, pero para mí mi error fue que olvidé la 'S' en mayúscula de appSettings
¿Cómo obtengo un int o bool, es decir, no una cadena?
Zapnologica
1
@Zapnologica Todo es una cadena, por lo que AppSettingsse considera. Si tiene cadenas de configuración que contienen números, tendrá que analizarlos llamando int.TryParse()o similar. Lo mismo ocurre con cualquier otro valor que desee tratar con algo que no sea una cadena.
xxbbcc
19

Para .NET Core, agregue System.Configuration.ConfigurationManager desde NuGet Manager.
Y lea appSetting desde App.config

<appSettings>
  <add key="appSetting1" value="1000" />
</appSettings>

Agregar System.Configuration.ConfigurationManager desde NuGet Manager

ingrese la descripción de la imagen aquí

ConfigurationManager.AppSettings.Get("appSetting1")
Zin Min
fuente
2

utilizar este

System.Configuration.ConfigurationSettings.AppSettings.Get("Keyname")
usuario5705992
fuente
puede guardar su configuración en appsettion y para obtener el ejemplo de uso de valor.
user5705992
1
Proporciona soporte para la versión de tiempo de ejecución 1.x. Esto es obsoleto ahora. Por favor utiliceSystem.Configuration.ConfigurationManager.AppSettings
wp78de
1
System.Configuration ensamblado es necesario en las referencias.
Muflix