Ce projet démontre le comportement de configuration enchaîné de Microsoft pour les applications hôtes génériques .NET.
Utilise Net 6.0 et le générateur d'hôtes génériques dans une application de console, avec une propriété "de salutation" qui est remplacée par chaque chaîne dans la configuration.
Il s'agit de l'ordre dans lequel chaque fournisseur de configuration enchaîné est appliqué. Le dernier gagne.
Parfois, comprendre la configuration enchaînée et ce qui remplace ce qui peut être une courbe d'apprentissage plus grande que souhaité.
Cette démo vise à vous aider à comprendre l'ordre de la configuration enchaînée.
La partie de configuration Azure de cette démo utilise l'accès à la configuration de l'application Azure, qui est actuellement gratuite pour une ressource.
Si vous utilisez cette partie de la démo, vous devez configurer votre abonnement et votre environnement Azure avant de lancer la démo.
J'ai utilisé la propriété configurable "de salutation", une avec une étiquette, une sans. Si vous souhaitez les utiliser, ou seulement l'un ou l'autre, vous devrez les ajouter à votre configuration d'application Azure.
L'étiqueté doit correspondre à la "configuration chaînée" selon le code existant.

Vous devez également décommenter la section AddAzureAppConfiguration dans Program.cs .
La familiarité avec une ligne de commande est requise. Les exemples sont basés sur Git Bash pour Windows, mais peuvent facilement être mappés pour PowerShell ou CMD.
Ceux-ci supposent un terminal bash. Convertissez en commandes pour votre fenêtre Terminal / PowerShell / CMD préférée.
Ceux-ci fonctionnent à l'envers de la configuration de l'application Azure, qui remplace tous les paramètres précédents, à la priorité la plus basse de la chaîne.
Lors de l'exécution de la ligne de commande, Clean (sans aucun ensemble de variables d'environnement):
Avec la section AzureAppConfiguration de Program.cs non en purée,
~/source/repos/ChainedConfigurationDemo/pub master
└─ cd ..; dotnet publish -o pub --nologo --verbosity quiet; cd pub
~/source/repos/ChainedConfigurationDemo/pub master
└─ ./ChainedConfigurationDemo.exe Greeting=HelloFromArgs
Starting demo...
In the end, the greeting is "HelloFromAzure"
Press Ctrl-C to stop the host and exit.
Avec la section AzureAppConfiguration de Program.cs a commenté, dans Visual Studio, exécutez l'application dans Debug.

Avec Azure a commenté, et aucun ensemble de dotnet_environment, sans lancer à partir de lancement de Visual Studio,

~/source/repos/ChainedConfigurationDemo/pub master
└─ cd ..; dotnet publish -o pub --nologo --verbosity quiet; cd pub
~/source/repos/ChainedConfigurationDemo/pub master
└─ ./ChainedConfigurationDemo.exe Greeting=HelloFromArgs
Starting demo...
In the end, the greeting is "HelloFromArgs"
Press Ctrl-C to stop the host and exit.
Cette application est configurée de telle sorte que si le dotnet_environment n'est pas défini ou est défini sur autre chose que "développement" ou "test", le bâtiment de configuration tombe sur AppSettings.json (si la propriété existe dans AppSettings.json), etc.
Program.cs a commenté ~/source/repos/ChainedConfigurationDemo/pub master
└─ cd ..; dotnet publish -o pub --nologo --verbosity quiet; cd pub
~/source/repos/ChainedConfigurationDemo/pub master
└─ export DOTNET_ENVIRONMENT=Development
~/source/repos/ChainedConfigurationDemo/pub master
└─ ./ChainedConfigurationDemo.exe
Starting demo...
In the end, the greeting is "HelloFromAppSettings.Development"
Press Ctrl-C to stop the host and exit.
Program.cs a commenté ~/source/repos/ChainedConfigurationDemo/pub master
└─ cd ..; dotnet publish -o pub --nologo --verbosity quiet; cd pub
~/source/repos/ChainedConfigurationDemo/pub master
└─ export DOTNET_ENVIRONMENT=Test
~/source/repos/ChainedConfigurationDemo/pub master
└─ ./ChainedConfigurationDemo.exe
Starting demo...
In the end, the greeting is "HelloFromAppSettings.Test"
Press Ctrl-C to stop the host and exit.
~/source/repos/ChainedConfigurationDemo/pub master
└─ unset DOTNET_ENVIRONMENT
~/source/repos/ChainedConfigurationDemo/pub master
└─ ./ChainedConfigurationDemo.exe
Starting demo...
In the end, the greeting is "HelloFromAppSettings"
Press Ctrl-C to stop the host and exit.
Avec la configuration actuelle de l'application, c'est le même résultat que dans la production.
~/source/repos/ChainedConfigurationDemo/pub master
└─ export Greeting=HelloFromOperatingEnvironment
~/source/repos/ChainedConfigurationDemo/pub master
└─ ./ChainedConfigurationDemo.exe
Starting demo...
In the end, the greeting is "HelloFromOperatingEnvironment"
Press Ctrl-C to stop the host and exit.
(Assurez-vous de unset Greeting si dans l'environnement CLI pour tous les autres cas)
Pour le cas d'utilisation Azure en option, vous aurez besoin
Pour # 4, cette démo utilise la chaîne de connexion en lecture seule à partir de ma configuration d'application Azure, tirée en tant que variable d'environnement de mon système local.