pegando_arquivo_de_configuracao

Olá pessoal, meu nome é Mauricio Junior e hoje eu vou mostrar como pegar os dados do arquivo de configuração utilizando C# .NET 7, com Razor para Web Application page.

Segue o arquivo de configuração com a conexão e tudo mais.

{
  "ConnectionStrings": {
    "Default": "ABC",
    "PublicKey": "123"
  },
  "DataHosts": [ "localhost", " localhost:8000" ],
  "DetailedErrors": true,
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  }
}

Na sua primeira página é necessário informar a interface IConfiguration. É necessário declarar ele primeiro.

private readonly IConfiguration _configuration;

Com a injeção de dependência, é necessário colocar a mesma interface no construtor do método.

public IndexModel(IConfiguration configuration)
{
    this._configuration = configuration;
}

Para pegar os dados no método Get, eu preciso utilizar a variável para usar o método GetValue com as tags que eu preciso.

public void OnGet()
{
    var connection = _configuration.GetValue<string>("ConnectionStrings:Default");
    var publicKey = _configuration.GetValue<string>("ConnectionStrings:PublicKey");
    var dataHosts = _configuration.GetSection("DataHosts").Get<string[]>();
}

Note que existe o bloco e dentro dele uma tag específica com a Default. Como o valor é string, basta usar o . O mesmo passo você pode fazer para int.

    var connection = _configuration.GetValue<string>("ConnectionStrings:Default");

Para pegar array é necessário usar outro método como GetSection com o Get<string[]> array.

var dataHosts = _configuration.GetSection("DataHosts").Get<string[]>();

Como todos os valores são colocados em uma variável, basta usar o valor ou imprimir como desejar. Espero ter ajudado.

Para mais informações, tenho um curso online na plataforma ecode10.academy que te ajuda a aprender passo a passo sem qualquer tipo de problema usando metodologia e prática.