.net Core Console App Appsettings.json Environment

4 min read Jun 03, 2024
.net Core Console App Appsettings.json Environment

Configuration d'applications console .NET Core avec appsettings.json et les environnements

Introduction

Les applications console .NET Core sont souvent utilisées pour des tâches automatisées ou des scripts en ligne de commande. La configuration de ces applications est essentielle pour gérer les paramètres, les connexions aux bases de données et d'autres configurations spécifiques à l'environnement. Dans cet article, nous allons explorer comment utiliser le fichier appsettings.json pour configurer des applications console .NET Core, en mettant l'accent sur la gestion des environnements.

Le fichier appsettings.json

Le fichier appsettings.json est un fichier de configuration standard pour les applications .NET Core. Il stocke les paramètres de l'application sous forme de paires clé-valeur. Vous pouvez organiser ces paramètres en sections pour une meilleure lisibilité et organisation.

Exemple:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "ConnectionStrings": {
    "DefaultConnection": "Server=localhost;Database=MyDatabase;User ID=sa;Password=Password123"
  },
  "AppSettings": {
    "MySetting": "Value"
  }
}

Gestion des environnements

Les applications .NET Core prennent en charge la configuration d'environnements distincts. Chaque environnement peut avoir ses propres paramètres spécifiques, tels que des connexions à des bases de données de développement ou de production différentes. Vous pouvez utiliser le fichier appsettings.json pour gérer ces environnements en créant des fichiers distincts pour chaque environnement.

Exemple:

  • appsettings.Development.json pour l'environnement de développement
  • appsettings.Production.json pour l'environnement de production

Exemple de fichier appsettings.Development.json:

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=localhost;Database=MyDatabaseDev;User ID=sa;Password=Password123"
  }
}

Exemple de fichier appsettings.Production.json:

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=myproductionserver;Database=MyDatabaseProd;User ID=produser;Password=ProdPassword"
  }
}

Lecture des paramètres

Vous pouvez lire les paramètres de configuration dans votre application console .NET Core en utilisant le type IConfiguration. Ce type vous permet d'accéder aux paramètres dans le fichier appsettings.json et dans les fichiers spécifiques à l'environnement.

Exemple:

using Microsoft.Extensions.Configuration;

public class Program
{
    public static void Main(string[] args)
    {
        // Construire un fournisseur de configuration
        var builder = new ConfigurationBuilder()
            .SetBasePath(Directory.GetCurrentDirectory())
            .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
            .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}.json", optional: true)
            .AddEnvironmentVariables();

        // Créer l'objet IConfiguration
        IConfiguration config = builder.Build();

        // Lire les paramètres
        string connectionString = config.GetConnectionString("DefaultConnection");
        string mySetting = config.GetValue("AppSettings:MySetting");

        // Utiliser les paramètres
        Console.WriteLine($"Chaîne de connexion : {connectionString}");
        Console.WriteLine($"Paramètre : {mySetting}");
    }
}

Conclusion

Utiliser le fichier appsettings.json pour configurer les applications console .NET Core offre un moyen efficace et flexible de gérer les paramètres et les environnements. En séparant les configurations par environnement, vous pouvez garantir que votre application utilise les bons paramètres en fonction de son environnement d'exécution. N'oubliez pas de définir la variable d'environnement ASPNETCORE_ENVIRONMENT pour que l'application puisse charger le bon fichier de configuration.

Featured Posts