Этот проект демонстрирует поведение на конфигурации Microsoft для приложений .NET Generic Host.
Использует Net 6.0 и универсальный застройщик хоста в приложении консоли с свойством «приветствия», которое переопределяется каждой цепочкой в конфигурации.
Это порядок, в котором применяется каждый поставщик конфигурации в цепях. Последний выигрывает.
Иногда понимание цепной конфигурации и то, что переопределяет то, что может быть большей кривой обучения, чем желательно.
Эта демонстрация состоит в том, чтобы помочь с пониманием порядка конфигурации цепью.
В части этой демонстрации конфигурации Azure используется доступ к конфигурации приложения Azure, который в настоящее время бесплатный для одного ресурса.
При использовании этой части демонстрации вы должны настроить подписку и среду Azure до запуска демонстрации.
Я использовал настраиваемое свойство «приветствие», одно с меткой, одно без. Если вы хотите использовать их, или только один или другой, вам нужно будет добавить их в конфигурацию приложения Azure.
Замеченная должна соответствовать «цепной конфигурации» в соответствии с существующим кодом.

Вы также должны расстроить раздел AddAzureAppConfiguration в Program.cs .
Требуется знакомство с командной строкой. Примеры основаны на Git Bash для Windows, но могут быть легко отображены для PowerShell или CMD.
Они предполагают терминал Bash. Конвертируйте в команды для вашего любимого терминала/PowerShell/Cmd окна.
Они работают в обратном направлении от конфигурации приложения Azure, которая переопределяет все предыдущие настройки, на самый низкий приоритет в цепочке.
При запуске из командной строки чистите (без установленных переменных среды):
С разделом AzureAppConfiguration в Program.cs .
~/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.
С разделом AzureAppConfiguration of Program.cs прокомментировал внутри Visual Studio, запустите приложение в отладке.

С Azure прокомментировано, и без набора Dotnet_environment, не запускающегося из запуска 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.
Это приложение настроено таким образом, что если dotnet_environment не установлено или устанавливается на что -то другое, кроме «разработки» или «тестирования», здание конфигурации переходит на Appsettings.json (если свойство существует в Appsettings.json) и т. Д., Например, например, если dotnet_environment установлен на «Производство».
Program.cs прокомментировано ~/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 прокомментировано ~/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.
С текущей конфигурацией приложения это тот же результат, что и в производстве.
~/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.
(Обязательно unset Greeting если в среде CLI для всех других случаев)
Для необязательного варианта использования Azure вам понадобится
Для #4 эта демонстрация использует строку подключения только для чтения из моей конфигурации Azure App, извлеченную в качестве переменной среды из моей локальной системы.