Acessando e manipulando configurações globais do appsetings.json com .NET Core 2.0

0

Ao trabalhar com projetos ASP.NET MVC ou WebAPI com base no .NET Core 2.0, você pode definir sua estrutura de configuração no arquivo appsetings.json onde você pode acessar em qualquer parte do seu projeto para acessar estas informações, que ao meu ver são as novas “chaves” do antigo web.config

Veja a estrutura de exemplo do meu arquivo appsetings.json:

{
  "Section": {
    "Config1": "Uma string qualquer",
    "Config2": {
      "Subconfig1": false,
      "Subconfig2": 50
    }
  }
}

 

Usando Injeção de Dependência já incorporada dentro do framework, você pode injetar dados de configuração em uma Controller por exemplo. Use o método AddSingleton para adicionar um serviço singleton dentro do arquivo de inicialização do projeto.

 public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc();
    services.AddSingleton<IConfiguration>(Configuration);
}

 

Já na controller você apenas precisará colocar a instância da classe de configuração no construtor, poder utilizar onde quiser:

  public class HomeController : Controller
    {
        private IConfiguration _configuration;
 
        public HomeController(IConfiguration Configuration)
        {
            _configuration = Configuration;
        }
 
        public IActionResult Index()
        {
            // Obtendo via Key
            ViewData["SectionConfig1"] = _configuration["Section:Config1"];
 
            // Obtendo via método GetSection 
            ViewData["SectionConfig2"] = _configuration.GetSection("Section").GetSection("Config2").GetSection("SubConfig1");
 
            //Obtendo via médoto GetSection e via Key de forma mixada
            ViewData["SectionConfig3"] = _configuration.GetSection("Section")["Config2:SubConfig2"];
 
            return View();
        }
    }
    

 

Todo o código da solução está no meu github: https://github.com/jhomarolo/configurationappsetings/

Um abraço a todos!

Compartilhe.

Sobre o autor

Criador do blog Código Simples e com mais 9 anos de experiência em TI, com títulos de MVP Microsoft na área de Visual Studio Development, Neo4j Top 50 Certificate, Scrum Master e MongoDB Evangelist. Atuando em funções analista, desenvolvedor, arquiteto, líder técnico e gestor de equipes. Mais informações em : http://jhonathansoares.com