【发布时间】:2021-10-08 20:49:14
【问题描述】:
由于某些原因,我在环境变量中存储了一个 json 块。
例如,我有一个名为 Serilog 的环境变量,其中包含我的 Serilog 配置:
{
"Enrich": ["WithThreadId"],
"MinimumLevel": {
"Default": "Debug",
"Override": {
"Microsoft": "Warning",
"System": "Debug"
}
},
"WriteTo": [{
"Args": {
"outputTemplate": "redacted"
},
"Name": "Console"
}, {
"Args": {
"fileSizeLimitBytes": 52428800,
"logDirectory": "redacted",
"logFilePrefix": "logfile",
"outputTemplate": "redacted",
"retainedFileCountLimit": 15
},
"Name": "RollingFileAlternate"
}]
}
在我应用的启动类中,我有以下配置代码:
var configuration = new ConfigurationBuilder()
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
目前,当应用程序启动时,会读取Serilog 环境变量,但它只是作为文字字符串读取,并且没有转换为ConfigurationBuilder 将是的正确键值对预计生产。
我猜这是因为它期望环境变量是简单的键值对,而不是复杂的 JSON 对象。
出于我宁愿跳过的原因,我需要完成这项工作。
如何告诉 .NET 解析存储在环境变量中的 JSON 字符串并将其用于配置?
【问题讨论】:
标签: json .net configuration environment-variables