Lendo configurações em aplicações console no .NET Core
Pode parecer óbvio para quem tem experiência com o Visual Studio e o .NET Framework “full”, mas ao criar uma nova aplicação console tanto no Visual Studio 2017 quando pela .NET Core CLI, o suporte para arquivos de configuração não está incluído no template padrão. Neste post, vou mostrar rapidamente como resolver isso.
Tudo o que você precisa fazer é adicionar um pacote NuGet em seu projeto:
Para adicioná-lo via CLI, é fácil:
dotnet add package microsoft.extensions.configuration.json
Adicione na pasta raiz do projeto um arquivo appSettings.json:
O código abaixo demonstra como carregar o arquivo de configuração e ler seus valores:
Ao executar o programa, temos a seguinte saída no console, demonstrando que as configurações foram carregadas com sucesso:
My Setting value
E é isso!
Observações
- Na linha 12, o método SetBasePath está apontando para a raiz da aplicação de forma simplista, utilizando o método Directory.GetCurrentDirectory, mas dependendo das condições de inicialização da aplicação, este pode não ser o local do executável.
Uma forma mais confiável pode ser utilizar Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) para obter o caminho do executável; - A recomendação de colocar o appSettings.json no diretório raiz da aplicação, bem como o nome do arquivo, são meras convenções. O local e o nome podem ser os que você preferir. Isso é até conveniente quando você quiser ler configurações de múltiplos arquivos, separando as responsabilidades de cada um;
Referências
ConfigurationBuilder Class
JsonConfigurationExtensions.AddJsonFile Method