このプロジェクトでは、.NETジェネリックホストアプリのMicrosoftのチェーン設定動作を示しています。
コンソールアプリでNet 6.0とGeneric Host Builderを使用し、構成内の各チェーンでオーバーライドされた「グリーティング」プロパティを備えています。
これは、各チェーン付き構成プロバイダーが適用される順序です。最後の1つが勝ちます。
鎖で覆われた構成と、望ましいよりも大きな学習曲線になる可能性のあるものをオーバーライドするものを理解することがあります。
このデモは、チェーン設定の順序を理解するのに役立ちます。
このデモのAzure構成部分は、Azure App Configuration Accessを使用しています。これは現在1つのリソースに無料です。
デモのこの部分を使用する場合は、デモを起動する前にAzureサブスクリプションと環境をセットアップする必要があります。
「グリーティング」構成可能なプロパティを使用しました。1つはラベルが付いています。これら、またはどちらかを使用する場合は、Azure App Configに追加する必要があります。
ラベルの付いたものは、既存のコードごとに「鎖で構成された」と一致する必要があります。

また、 Program.csのAddAzureAppConfigurationセクションを除外する必要があります。
コマンドラインに精通していることが必要です。例は、Windows用のGit Bashに基づいていますが、PowerShellまたはCMD用に簡単にマッピングできます。
これらはバッシュ端末を想定しています。お気に入りの端末/PowerShell/CMDウィンドウのコマンドに変換します。
これらは、以前のすべての設定をオーバーライドするAzure App Configから、チェーン内の最優先事項に逆行します。
コマンドラインから実行するとき、クリーン(環境変数が設定されていない):
Program.csのazureappconfigurationセクションでは、comementededed、
~/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.
Program.csのAzureAppConfigurationセクションで、Visual Studioの内部でコメントされ、Debugでアプリを実行します。

Azureがコメントし、Visual StudioのLaunchSettingsから発売されないDotNet_Environmentセットはありません。

~/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のAzureAppConfigurationセクションでコメントしました ~/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のAzureAppConfigurationセクションでコメントしました ~/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.
(他のすべてのケースについてCLI環境にいる場合は、必ずunset Greetingてください)
オプションのAzureユースケースには、必要になります
#4の場合、このデモは、Azure App Configの読み取り専用接続文字列を使用して、ローカルシステムから環境変数として引き込まれます。