2oo*_*oom 24 asp.net config release web-config asp.net-core
在以前的ASP.NET版本中,我们许多人使用Web.Debug.config/ Web.Release.configfiles trasformations看起来像这样:
Web.config:
<connectionStrings>
<add name="AppDB" connectionString="Data Source=(LocalDb)\\..." />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
Web.Release.config:
<connectionStrings>
<add name="AppDB" connectionString="Data Source=(ReleaseDb)\\..." xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
根据ASP.NET vNext教程,您仍然可以使用Web.config.但config.json似乎是根据同一篇文章处理配置的新方法:
config.json
{
"Data": {
"DefaultConnection": {
"ConnectionString": "Server=(localdb)\\..."
}
}
}
Run Code Online (Sandbox Code Playgroud)
在Startup.cs中:
var configuration = new Configuration();
configuration.AddJsonFile("config.json");
configuration.AddEnvironmentVariables();
Run Code Online (Sandbox Code Playgroud)
所以我想知道通过这种转换到json来处理配置转换的建议方法是什么?
gov*_*vin 20
vNext使用新的配置系统,您可以通过代码读取环境变量.因此,在这种情况下,您将检查是否存在相应的环境变量,并通过代码包含相应的JSON.
例如,您可以创建qa.json和prod.json.设置一个环境变量,比如"ENV",它指向那些相应环境中的"qa"和"prod".然后有条件地你可以添加适当的JSON.
代码可能如下所示:
1)default.json包含所有默认内容.
2)qa.json和prod.json包含必要的覆盖.
3)由于qa.json和prod.json以后会来,他们会赢.如果default.json和qa.json中有"setting1",它将自动获取qa.json中的"setting1"
var configuration = new Configuration()
.AddJsonFile("default.json")
.AddEnvironmentVariables();
var envSpecificJson = configuration.Get("ENV") + ".json";
configuration.AddJsonFile(envSpecificJson);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3722 次 |
| 最近记录: |