Na sua forma mais simples, o app.config é um arquivo XML com muitas seções de configuração predefinidas disponíveis e suporte para seções de configuração personalizadas. Uma "seção de configuração" é um trecho de XML com um esquema destinado a armazenar algum tipo de informação.
As configurações podem ser definidas usando seções de configuração internas, como connectionStrings
ou appSettings
. Você pode adicionar suas próprias seções de configuração personalizadas; este é um tópico avançado, mas muito poderoso para criar arquivos de configuração fortemente tipados.
Os aplicativos da Web geralmente têm um web.config, enquanto os aplicativos de GUI / serviço do Windows têm um arquivo app.config.
Os arquivos de configuração no nível do aplicativo herdam as configurações dos arquivos de configuração global, por exemplo, o machine.config.
Lendo a partir do App.Config
As cadeias de conexão têm um esquema predefinido que você pode usar. Observe que esse pequeno trecho é na verdade um arquivo app.config (ou web.config) válido:
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="MyKey"
connectionString="Data Source=localhost;Initial Catalog=ABC;"
providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>
Depois de definir seu app.config, você pode lê-lo no código usando a classe ConfigurationManager . Não se deixe intimidar pelos exemplos detalhados do MSDN; é realmente muito simples.
string connectionString = ConfigurationManager.ConnectionStrings["MyKey"].ConnectionString;
Escrevendo no App.Config
A alteração frequente dos arquivos * .config geralmente não é uma boa ideia, mas parece que você deseja executar apenas uma configuração.
Consulte: Alterar a cadeia de conexão e recarregar app.config em tempo de execução, que descreve como atualizar oconnectionStrings
seção do arquivo * .config em tempo de execução.
Observe que, idealmente, você executaria essas alterações de configuração a partir de um instalador simples.
Local do App.Config no tempo de execução
P : Suponha que eu altere manualmente algumas <value>
no app.config, salve-o e feche-o. Agora, quando vou para a pasta bin e inicio o arquivo .exe a partir daqui, por que não reflete as alterações aplicadas?
R : Quando você compila um aplicativo, seu app.config é copiado no diretório bin 1 com um nome que corresponde ao seu exe. Por exemplo, se o seu exe foi nomeado "test.exe", deve haver um "text.exe.config" no diretório bin. Você pode alterar a configuração sem recompilar, mas precisará editar o arquivo de configuração que foi criado no momento da compilação, não o app.config original.
1: Observe que os arquivos web.config não são movidos, mas permanecem no mesmo local no momento da compilação e implantação. Uma exceção a isso é quando um web.config é transformado .
.NET Core
Novas opções de configuração foram introduzidas com o .NET Core. A maneira como os arquivos * .config funcionam não parece ter mudado, mas os desenvolvedores podem escolher novos paradigmas de configuração mais flexíveis.