Son*_*Sam 4 c# configuration environment-variables .net-core
在 dotnet core 中,我想将一组环境变量绑定到一个类,使用IConfigurationRoot的Bind方法与您对appsettings.json
例如
具有以下 appsettings.json
{
"EnviromentSettings":
{
"ValueOne": "Foo1",
"ValueTwo": "Foo2"
}
}
Run Code Online (Sandbox Code Playgroud)
我可以将该部分绑定EnvimentSettings到以下类
public class EnviromentSettings
{
public string ValueOne {get;set;}
public string ValueTwo {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
使用此代码
public IConfigurationRoot Configuration { get; }
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);
services.Configure<EnviromentSettings>(options => Configuration.GetSection("EnviromentSettings").Bind(options));
Run Code Online (Sandbox Code Playgroud)
我可以对环境变量做类似的事情吗?
是的,只需从 appsettings.json 文件中删除“EnvironmentSettings”。这对我有用。注意:它将首先从 appsettings.json 文件中读取并覆盖环境变量(如果存在)。
appsettings.json
{
"ValueOne": "Foo1",
"ValueTwo": "Foo2"
}
Run Code Online (Sandbox Code Playgroud)
代码更改
EnvironmentSettings settings = new EnvironmentSettings();
var builder = new ConfigurationBuilder()
.AddJsonFile("config.json")
.AddEnvironmentVariables();
config = builder.Build();
ConfigurationBinder.Bind(config, settings);
Console.WriteLine($"ValueOne: {settings.ValueOne}");
Console.WriteLine($"ValueTwo: {settings.ValueTwo}");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4921 次 |
| 最近记录: |