Конфигурирование приложения с помощью метода CreateDefaultBuilder¶
Рассмотрим, где происходит загрузка конфигурации от поставщиков. Для приложений ASP.NET Core 5.0, созданных с использованием шаблонов по умолчанию, это всегда происходит внутри метода Host.CreateDefaultBuilder() в файле Program.cs.
Как мы видели, в ASP.NET Core 5.0 по умолчанию используется метод CreateDefaultBuilder():
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}
Вот как выглядит этот метод:
public static IHostBuilder CreateDefaultBuilder(string[] args)
{
var builder = new HostBuilder()
.UseContentRoot(Directory.GetCurrentDirectory())
.ConfigureHostConfiguration(config => {/*настройка поставщика конфигурации*/})
.ConfigureAppConfiguration((hostingContext, config) => {/*настройка поставщика конфигурации*/})
.ConfigureLogging((hostingContext, logging) =>
{
logging.AddConfiguration(
hostingCOntext.Configuration.GetSection("Logging"));
logging.AddConsole();
logging.AddDebug();
})
.UseDefaultServiceProvider((context, options) =>
{
var isDevelopment = context.HostingEnvironment.IsDevelopment();
options.ValidateScopes = isDevelopment;
options.ValidateOnBuild = isDevelopment;
});
return builder;
}
Здесь:
UseContentRoot: метод сообщает приложению, в каком каталоге можно найти любую конфигурацию или посмотреть файлы, которые потребуются позже;ConfigureHostConfiguration: место, где приложение определяет, в каком окружении (HostingEnvironment) оно работает1;ConfigureAppConfiguration: конфигурирует настройки приложения2;ConfigureLogging: конфигурирует параметры логирования3;UseDefaultServiceProvider: настраивает приложение на использование встроенного контейнера внедрения зависимостей.
Последнее обновление :
30 сентября 2022 г.
Дата создания : 30 сентября 2022 г.
Дата создания : 30 сентября 2022 г.