.net core 如何从appsettings.json为.net核心控制台应用程序设置环境变量?

.net core 如何从appsettings.json为.net核心控制台应用程序设置环境变量?,.net-core,environment-variables,configuration-files,.net Core,Environment Variables,Configuration Files,我正在使用一个C#类,该类使用 Environment.GetEnvironmentVariable("setting") 我想制作另一个控制台程序(.net core 3.0),从appsettings.json读取设置并将其加载到环境变量中 static void Main(string[] args) { var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurr

我正在使用一个C#类,该类使用

Environment.GetEnvironmentVariable("setting")
我想制作另一个控制台程序(.net core 3.0),从appsettings.json读取设置并将其加载到环境变量中

static void Main(string[] args)
{
     var builder = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("appsettings.json")
                .AddEnvironmentVariables();

            IConfiguration config = builder
                .Build();

    var businessLogic = new BusinessLogic(); // uses GetEnvironmentVariable to get configuration
}
在我的业务逻辑类中,环境变量没有正确回调。有什么问题吗

appsettings.json的格式如下:

{
    "SETTING" : "setting value"
}

Environment.GetEnvironmentVariable(“设置”)
将始终尝试从环境变量而不是从加载的配置读取数据

您需要更改
BusinessLogic
类以接受您构建的
config
对象,并使用该对象访问设置。例如:

public class BusinessLogic
{
    public BusinessLogic(IConfiguration config)
    {
        var value = config.GetValue<string>("SETTING");
    }
}
公共类业务逻辑
{
公共业务逻辑(IConfiguration配置)
{
var value=config.GetValue(“设置”);
}
}
在本例中,
value
将包含
SETTING
的正确值,如果该值是在
appsettings.json
中或使用环境变量最后设置的