在CreateDefaultBuilder
中,ConfigureAppConfiguration
会调用某些默认值。我想覆盖(或追加)这些默认值。我尝试将CreateDefaultBuilder
复制到我自己的函数中并编辑相应的行,但它无法解析函数中使用的类型,因为类型为internal
到AspNetCore名称空间(具体而言) HostFilteringStartupFilter
类型)。
我是否有更简洁的方法来修改CreateDefaultBuilder
功能?
编辑:所以我只看了HostFilteringStartupFilter
的来源,只是在UseHostFiltering
上调用了IApplicationBuilder
,所以我只是将其添加到我的Startup.Configure
但我会如果可能,仍然喜欢更清洁的方法..
答案 0 :(得分:1)
CreateDefaultBuilder设置要保留的合理默认值(配置部分除外)。 CreateDefaultBuilder执行以下配置设置:
了解此默认分层,每个层都可能覆盖先前值的事实以及您只能将配置提供程序添加到列表(而不能删除它们)这一事实,现在可以解决您的问题。
使用ConfigureAppConfiguration完成CreateDefaultBuilder顶部的配置:
WebHost.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((hostingContext, config) =>
{
// Override here specifying new or previous layers to make sure
// you get the desired outcome.
// e.g. If you specify your appsettings.json you basically start from scratch
...
})...