gpt4 book ai didi

asp.net - 如何在 ASP.NET vNext 中处理调试/发布配置转换

转载 作者:行者123 更新时间:2023-12-02 06:37:12 26 4
gpt4 key购买 nike

在以前版本的 ASP.NET 中,我们许多人使用 Web.Debug.config/Web.Release.config 文件转换,如下所示:

Web.config:

<connectionStrings>
<add name="AppDB" connectionString="Data Source=(LocalDb)\\..." />
</connectionStrings>

Web.Release.config:

<connectionStrings>
<add name="AppDB" connectionString="Data Source=(ReleaseDb)\\..." xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>

根据 ASP.NET vNext tutorial您仍然可以使用 Web.config。但 config.json 似乎是现在根据同一篇文章处理配置的新方法:

config.json

{
"Data": {
"DefaultConnection": {
"ConnectionString": "Server=(localdb)\\..."
}
}
}

Startup.cs中:

var configuration = new Configuration();
configuration.AddJsonFile("config.json");
configuration.AddEnvironmentVariables();

所以我想知道处理配置转换并转换为 json 的建议方法是什么?

最佳答案

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);

关于asp.net - 如何在 ASP.NET vNext 中处理调试/发布配置转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26468521/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com