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!