.Net 5, multiples fichiers de configuration (appsettings.json)

Nous allons voir ici comment gérer plusieurs fichiers de configuration. Cela peut être nécessaire si vous désirez dédier un fichier par section importante afin de ne pas avoir 1 fichier appsettings.json trop long mais plusieurs petit fichier (plus facile à gérer et maintenir). Pour ce faire, ajouter un nouveau fichier json dans votre solution. Par exemple appsettings.Second.json. Attention, l’erreur classique est d’oublier dans les propriétés de mettre le fichier en content, et au minimim copy if newer. Dans le cas contraire, ceci provoquera une exception de type System.IO.FileNotFoundException.

Maintenant que le fichier supplémentaire de configuration est disponible, il faut le charger lors du démarrage de l’application. Dans le fichier Program.cs une méthode d’extension ConfigureAppConfiguration est disponible sur le HostBuilder. Cette méthode prend une action qui permet d’agir sur le ConfigurationBuilder qui lui même dispose d’une méthode d’extension AddJsonFile.

public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                })
                .ConfigureAppConfiguration((hosting, config) =>
                {
                    config.AddJsonFile("appsettings.Second2.json", false, false);
                });
    }

Le premier paramètre est le path, le fichier se trouvant à la racine, il suffira de mettre directement le nom du fichier. Le second est un booléen qui permet de préciser si le fichier est optionel ou non. Et pour finir le dernier est de savoir si la configuration doit être recharger si le fichier est modifié. Maintenant, comme pour la première section, nous allons charger la section.

var configSection2 = Configuration.GetRequiredSection(SecondOptions.ConfigurationName);
services.Configure<SecondOptions>(configSection2);

Il nous reste plus qu’a l’utiliser et voir le résultat.

Cet artcile est la suite d’une série d’article sur la gestion de vos configurations. Retrouvez, le code complet ici.

Publicité

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.