在 .NET Core 2 Web API 应用程序中,我可以覆盖配置urls
using appsettings.json
,但在官方文档他们引入了额外的文件“hosting.json”,为什么?增加复杂性有什么意义?
下面的代码完全可以使用appsettings.json
:
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args)
{
var config = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory()) //see Side note below
.AddJsonFile("appsettings.json", optional: true)
.AddCommandLine(args)
.Build();
return WebHost.CreateDefaultBuilder(args)
.UseConfiguration(config)
.UseStartup<Startup>()
.Build();
}
}
appsettings.json 内容:
{
"Logging": {
"IncludeScopes": false,
"Debug": {
"LogLevel": {
"Default": "Warning"
}
},
"Console": {
"LogLevel": {
"Default": "Warning"
}
}
},
"urls": "http://*:5005/"
}
边注:
评论.SetBasePath(Directory.GetCurrentDirectory())
将保持 VS 2017 调试模式运行(意味着应用launchSettings.json
,以及自动启动 url),否则不会。我猜它与创建默认构建器执行。
我认为,这只是用于分离主机和应用程序配置以遵循 SRP(单一职责原则)的约定。
您可以将它们保存在同一个文件中,并且如果需要,可以通过注释将它们分开
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)