我正在使用一个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"
}
答案 0 :(得分:0)
Environment.GetEnvironmentVariable("setting")
将始终尝试从环境变量而不是从已加载的配置读取数据。
您需要更改BusinessLogic
类,以接受所构建的config
对象,并使用该对象访问设置。一个例子:
public class BusinessLogic
{
public BusinessLogic(IConfiguration config)
{
var value = config.GetValue<string>("SETTING");
}
}
在此示例中,value
如果最后一次在SETTING
中设置或使用环境变量,则将包含正确的值appsettings.json
。