Arquivo App.Config no aplicativo de console C #

92


Tenho um aplicativo de console no qual desejo escrever o nome de um arquivo.

Process.Start("blah.bat");

Normalmente, eu teria algo parecido no aplicativo do Windows, escrevendo o nome do arquivo no arquivo 'blah.bat'de configurações em Propriedades .
No entanto, aqui não encontrei nenhum arquivo de configurações e adicionei um app.config para o mesmo propósito.

Não tenho certeza do que escrever aqui no app.config , isso me levaria a conseguir algo semelhante ao do Windows Forms .

Por exemplo: Em formulários do Windows. Process.Start(Properties.Settings.Default.BatchFile);
onde BatchFileé uma string no arquivo de configurações em Propriedades.

user1240679
fonte

Respostas:

212

Você pode adicionar uma referência a System.Configurationem seu projeto e, em seguida:

using System.Configuration;

então

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

com um app.configarquivo como este:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <appSettings>
       <add key="BatchFile" value="blah.bat" />
   </appSettings>
</configuration>
xxbbcc
fonte
11
ConfigurationSettings.AppSettings["blah.bat"]está disponível, mas avisa que é obsoleto. Quando tento usar ConfigurationManagercomo acima, recebo um erro dizendo que o ConfigurationManager não existe no contexto atual. : - /
user1240679
69
Certifique-se de adicionar também uma referência a System.Configuration - o usingdurective só funciona quando você tem uma referência ao assembly que está tentando usar.
xxbbcc
1
comentário tardio, mas meu erro foi que esqueci a
como obtenho um int ou bool, ou seja, não uma string?
Zapnologica
1
@Zapnologica Tudo é uma string, pelo que AppSettingsse considera. Se você tiver strings de configuração que contenham números, terá que analisá-los chamando int.TryParse()ou algo parecido. O mesmo vale para qualquer outro valor que você deseja tratar algo diferente de uma string.
xxbbcc
18

Para .NET Core, adicione System.Configuration.ConfigurationManager do gerenciador NuGet.
E leia appSetting em App.config

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

Adicionar System.Configuration.ConfigurationManager do NuGet Manager

insira a descrição da imagem aqui

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

usa isto

System.Configuration.ConfigurationSettings.AppSettings.Get("Keyname")
user5705992
fonte
você pode salvar sua configuração em appsettion e para obter o exemplo de uso de valor.
user5705992
1
Fornece suporte para a versão 1.x do tempo de execução. Isso está obsoleto agora. UseSystem.Configuration.ConfigurationManager.AppSettings
wp78de
1
O assembly System.Configuration é necessário nas referências.
Muflix,