【问题标题】:How to set environment variables from appsettings.json for .net core console app?如何从 appsettings.json 为 .net 核心控制台应用程序设置环境变量?
【发布时间】:2020-02-29 07:30:06
【问题描述】:

我正在处理一个使用

从 appsettings 读取的 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"
}

【问题讨论】:

    标签: .net-core environment-variables configuration-files


    【解决方案1】:

    Environment.GetEnvironmentVariable("setting") 将始终尝试从环境变量中读取数据,而不是从您加载的配置中。

    您需要更改 BusinessLogic 类以接受您构建的 config 对象并使用它来访问设置。一个例子:

    public class BusinessLogic
    {
        public BusinessLogic(IConfiguration config)
        {
            var value = config.GetValue<string>("SETTING");
        }
    }
    

    在此示例中,value 将包含正确的 SETTING 值,如果它最后设置在 appsettings.json 中或使用环境变量。

    【讨论】:

      猜你喜欢
      • 2021-02-09
      • 1970-01-01
      • 2018-05-14
      • 2020-07-14
      • 1970-01-01
      • 2019-09-26
      • 2023-02-07
      • 2017-01-27
      • 1970-01-01
      相关资源
      最近更新 更多