C# docker编写环境变量到IConfiguration,怎么办?

C# docker编写环境变量到IConfiguration,怎么办?,c#,docker-compose,azure-active-directory,environment-variables,asp.net-core-3.1,C#,Docker Compose,Azure Active Directory,Environment Variables,Asp.net Core 3.1,我使用docker compose文件保存所有环境变量 environment: - Instance=https://login.microsoftonline.com/ - ClientId=xxxxxxxx 我可以在我的asp.net核心web api应用程序statrtup类中访问这些变量,如下所示 var instance = Environment.GetEnvironmentVariable("Instance") var clientId = Env

我使用docker compose文件保存所有环境变量

environment:
  - Instance=https://login.microsoftonline.com/
  - ClientId=xxxxxxxx
我可以在我的asp.net核心web api应用程序
statrtup
类中访问这些变量,如下所示

var instance = Environment.GetEnvironmentVariable("Instance")
var clientId = Environment.GetEnvironmentVariable("ClientId")
statrtup
类中,I可以将下面的整个like
I配置
发送到以下方法:

services.AddProtectedWebApi(Configuration);
它将自动读取我在
appsettings.json的
AzureAd
部分中配置的所有配置

"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"ClientId": "xxxxxxxxxxxxxxxxxxxxxx",
"Domain": "xxxxxxxxxxxxxxxxxxxxxxxxx",
"TenantId": "xxxxxxxxxxxxxxxxxxxxxxx"
},


现在我的问题是,我们如何读取环境变量(而不是
appsettings.json
)并使用配置部分
AzureAd
准备
IConfiguration

您应该使用以下带前缀的环境变量名称:

environment:
- AzureAd__Instance=https://login.microsoftonline.com/
- AzureAd__ClientId=xxxxxxxx

要覆盖appsettings.json

,您是否在询问如何创建一个读取环境变量的类,并实现一个接口(IConfiguration)并将其传递给一个方法?看起来您已经知道如何做这些事情了?如何转换来自env的appsettings的覆盖值。变量?太好了。谢谢,谢谢!
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"ClientId": "xxxxxxxxxxxxxxxxxxxxxx",
"Domain": "xxxxxxxxxxxxxxxxxxxxxxxxx",
"TenantId": "xxxxxxxxxxxxxxxxxxxxxxx"