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
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.