c# - ASP.NET MVC 6 中的配置转换

标签 c# asp.net-core-mvc

我们正在尝试设置 ASP.NET MVC 6 Web 应用程序。在以前版本的 ASP.NET 中,我们始终对 Web.config 使用转换。例如,我们通过创建 Web.Production.config 来做到这一点。在本例中,Production 与项目/解决方案的构建配置的名称匹配,并作为对原始 Web.config 的转换应用。

在新版本中,配置是使用JSON完成的。然而,这种自动转换已经不存在了。在 ASP.NET MVC 6 中实现相同目标的最佳方法是什么?

最佳答案

不再有“自动转换”。

配置的工作方式有点像 jQuery 中的“扩展”属性。

如果在 2 个不同配置中设置了两个参数(appsettings.jsonappsettings.Production.json),则后者优先

那么让我们看看是否可以解决您的问题。

这是我的 appsettings.json 的样子:

{
   "myValue" : 1
}

这是 appsettings.Production.json 的样子:

{
   "myValue" : 3
}

第一个文件将包含在您的构建中,并且 .NET 将自动使用它来获取您的配置。那么它如何选择“生产”呢?

答案可以在 Startup.cs 构造函数中找到:

 // Set up configuration sources.
 var builder = new ConfigurationBuilder()
     .AddJsonFile("appsettings.json")
     .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);

当然,您可以为配置文件选择任何变量,或者直接从环境变量或任何其他源加载它们。

旁注

名称“环境变量”似乎必须为每个人全局设置,但没有什么可以阻止您通过在调用脚本之前内联设置它们来仅为当前进程设置它们。

因此,dnx web 将在您的计算机上的生产环境中自动启动您的应用程序,但使用 Visual Studio 启动它(它会自动将环境设置为开发)将在开发模式。

关于c# - ASP.NET MVC 6 中的配置转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34396710/

相关文章:

c# - 让我的游戏重新开始 C#

c# - 如何优化这段代码? (也许用 LINQ?)

c# - 如何从 WPF 用户控件获取托管 WinForm 的实例?

c# - 告诉 Swashbuckle 只查找具有 ApiControllerAttribute 的 Controller

asp.net - User.GetUserId() 在 Controller 的构造函数内失败

angular - 我可以使用 IdentityServer4 spa JS UI 而不是 asp .net core mvc 吗?

c# - 如何使用 HttpClient 在 MVC 6 中获取非原始类型

c# - 覆盖 Autofac 注册 - 使用 DI 进行集成测试

c# - ASP.Net Core MVC - 部分 View 的 Auth 上下文不同?

c# - ASP.Net 5 MVC 6 - 如何使用 FromBody 在 POST 上返回无效的 JSON 消息?