Leggere il file di configurazione in Asp.NET Core e C#

Mattepuffo's logo
Leggere il file di configurazione in Asp.NET Core e C#

Leggere il file di configurazione in Asp.NET Core e C#

Ho creato un progetto per fare dei test su Asp.NET Core.

E ho visto che hanno finalmente levato il Web.config per qualcosa di più moderno: appsettings.json!

Oggi vediamo come leggere il file da un controller usando C#; avendo creato un progetto Asp.NET Core MVC, non ho dovuto modificare ne il Program.cs ne lo Startup.cs.

Cominciamo dal file JSON:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*",
  "ConnectionStrings": {
    "ZaraConn": "Server=IP;Database=DB;user id=USER;password=PWD"
  },
  "MySettings": {
    "token": "MY_TOKEN"
  }
}

Ho aggiunto il ConnectionStrings e il MySettings.

Adesso dentro il nostro controller:

using System.Diagnostics;
using Microsoft.AspNetCore.Mvc;
using CSharpNetCoreWeb.Models;
using Microsoft.Extensions.Configuration;

namespace CSharpNetCoreWeb.Controllers
{
    public class HomeController : Controller
    {
        private IConfiguration configuration { get; }

        public HomeController(IConfiguration configuration)
        {
            string connectionString = configuration.GetConnectionString("ZaraConn");
            Debug.WriteLine("DB CONN: " + connectionString);

            string token = configuration.GetSection("MySettings").GetSection("token").Value;
            Debug.WriteLine("TOKEN: " + token);
        }

        public IActionResult Index()
        {
            return View();
        }

        public IActionResult Privacy()
        {
            return View();
        }

        [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
        public IActionResult Error()
        {
            return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
        }
    }
}

La cosa fondamentale, sulla quale ci ho sbattuto la testa, è passare IConfiguration nel costruttore (dependency injection).

Sotto vi ho postato due esempi di lettura del file:

  • nel primo usiamo la "scorciatoia" GetConnectionString, che va appunto a cercare il parametro ConnectionStrings
  • nel secondo andiamo a leggere le sezioni messe per la nostra configurazione personale

Enjoy!


Condividi

Commentami!