Photo by Alexander Andrews on Unsplash
Estou trabalhando em um projeto de aprendizado usando ASP.NET Core e Dapper. Recentemente fiz um post relacionado aqui e no final coloquei link para o projeto.
Encontrei uma grande dificuldade para ler a configuração da string de conexão com o banco de dados do arquivo JSON. Todas as buscas e documentação que eu lia eram bastante vagos (ou eu que não estava entendendo mesmo) sobre como fazer a leitura.
Neste post vou colocar os passos que dei para que o projeto ficasse operacional, lendo as configurações corretamente.
Em um projeto ASP.NET Core por padrão as configurações são armazenadas em um arquivo JSON. Embora seja possível usar outras formas de armazenamento, este é o mais comum. O exemplo abaixo inclui uma seção para a string de conexão identificada pela chave "ConnectionStrings".
A parte mais importante a observar é o caminho completo para a chave. No meu caso eu estava passando incorretamente o caminho e isso retornava sempre o valor nulo. Para a configuração deste exemplo, o caminho completo deve ser: "Logging:ConnectionStrings:Schedules".
O lugar correto no projeto para fazer a leitura do arquivo de configuração é na classe Startup.cs, que faz a inicialização do projeto. Uma abordagem que pode ser usada é criar uma classe estática que disponibilize uma propriedade para recuperar a string de conexão.
Neste projeto eu criei uma classe chamada ConfigHelper que tem a propriedade ConnectionString.
Na classe Startup.cs, responsável pela inicialização do serviço, foram introduzidas as seguintes mudanças:
Uma propriedade IConfiguration para ser possível acessar métodos que possam ler as configurações do arquivo JSON.
Em seguida, no construtor, esta propriedade é inicializada recebendo a configuração que é passada por parâmetro no construtor.
E por fim, no método ConfigureServices, é feita a leitura da seção de configuração onde está a string de conexão e passada para a classe estática que foi criada com o propósito de auxiliar a leitura da configuração.
Com a estrutura pronta para a leitura das configurações foi necessário apenas incluir a chamada para a classe ConfigHelper no método que faz a leitura dos dados no banco de dados e executar o método Query do Dapper.
Acredito que uma vez desvendado o mistério de como ler as configurações se tem uma base para que as demais operações se tornem mais diretas.
Este projeto de aprendizado do asp.net core e Dapper está evoluindo, se quiser, acompanhe no Git Hub e até a próxima.