给出以下程序:
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((builderContext,config) =>
{
var env = builderContext.HostingEnvironment;
config.AddJsonFile("appsettings.json",optional: false,reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json",optional: true,reloadOnChange: true)
.AddEnvironmentVariables(prefix: "Prefix_");
})
.UseStartup<Startup>();
}
和通常在appsettings.json
中定义为的配置:
{
"SomeSection": {
"SomeOption": true
}
}
是否有办法将其覆盖为环境变量(使用the method specified in the docs)?
我尝试过(我在macOS上,但是在Linux和Docker Compose中也会发生同样的问题)
export Prefix_SomeSection__SomeOption=true
,但是将其解析为字符串,并且无法将其转换为布尔值。 与其他所有非布尔选项都可用的相同方法,这似乎暗示着有一些未公开的方法将变量定义为布尔值。