Configuration des applications C# (.NET) : Microsoft.Extensions.Configuration

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Configuration des applications C# (.NET) : guide complet



La gestion de la configuration est l'une des tâches clés lors du développement d'applications modernes en C# (.NET). La bibliothèque Microsoft.Extensions.Configuration fournit un mécanisme puissant et flexible pour lire les paramètres à partir de diverses sources : fichiers JSON, variables d'environnement, arguments de ligne de commande et secrets. Dans cet article, nous allons détailler comment configurer la configuration dans les applications .NET, en utilisant les meilleures pratiques et des exemples de code.



Principales fonctionnalités de la bibliothèque



  • Multiples sources de données : JSON, XML, INI, variables d'environnement, arguments de ligne de commande, Azure Key Vault et autres.
  • Structure hiérarchique : prise en charge des sections imbriquées via des clés avec deux-points (Section:Subsection:Key).
  • Liaison aux classes (Options Pattern) : remplissage automatique des objets POCO à partir de la configuration.
  • Remplacement flexible : la dernière source ajoutée a la priorité.
  • Prise en charge des secrets : pour le développement — Secret Manager, pour la production — des stockages sécurisés.


Installation et connexion



Pour travailler avec la configuration dans une application .NET (console, ASP.NET Core, MAUI, etc.), vous devez installer le package NuGet :



dotnet add package Microsoft.Extensions.Configurationdotnet add package Microsoft.Extensions.Configuration.Jsondotnet add package Microsoft.Extensions.Configuration.EnvironmentVariablesdotnet add package Microsoft.Extensions.Configuration.CommandLine


Dans ASP.NET Core, ces packages sont déjà inclus par défaut.



Exemple de base : lecture à partir de appsettings.json



Créons un fichier appsettings.json :



{  "Logging": {    "LogLevel": {      "Default": "Information",      "Microsoft": "Warning"    }  },  "ConnectionStrings": {    "DefaultConnection": "Server=localhost;Database=MyDb;User Id=sa;Password=MyPass;"  },  "AppSettings": {    "AppName": "MyApp",    "Version": "1.0.0",    "MaxRetries": 3  }}


Code pour lire la configuration dans une application console :



using Microsoft.Extensions.Configuration;

class Program{ static void Main(string[] args) { // Création de la configuration var configuration = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) .AddEnvironmentVariables() .AddCommandLine(args) .Build();

// Lecture de valeurs simples string appName = configuration["AppSettings:AppName"]; Console.WriteLine($"App Name: {appName}");

// Lecture de sections imbriquées string connString = configuration.GetConnectionString("DefaultConnection"); Console.WriteLine($"Connection String: {connString}");

// Lecture d'un nombre entier int maxRetries = int.Parse(configuration["AppSettings:MaxRetries"]); Console.WriteLine($"Max Retries: {maxRetries}");

// Récupération d'une section entière var appSettingsSection = configuration.GetSection("AppSettings"); Console.WriteLine($"Version: {appSettingsSection["Version"]}"); }}


Modèle Options (liaison aux classes)



La meilleure pratique consiste à utiliser une configuration fortement typée via IOptions<T>. Pour cela :



  1. Créez une classe pour la section de configuration :


public class AppSettings{    public string AppName { get; set; }    public string Version { get; set; }    public int MaxRetries { get; set; }}


  1. Enregistrez la configuration dans le conteneur DI (pour ASP.NET Core ou avec Micros

Recommendations