Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
они опять их разъединили ? весь в прошой версии наоборот объединяли в один ....
Это создаёт новый экземпляр WebApplicationOptions, инициализирует аргументы Args из аргументов командной строки и передаёт объект параметров в конструктор WebApplicationBuilder (показанный кратко ниже):
public static WebApplicationBuilder CreateBuilder(string[] args) =>
new(new() { Args = args });
Кстати, новое сокращённое ключевое слово new, когда целевой тип неочевиден, — просто отстой при разборе кода. Невозможно даже предположить, что создаёт второй new() в приведённом выше коде. Во многом претензии те же самые, как и к повсеместному использованию var, но в данном случае это меня особенно раздражает.
public class WebApplicationOptions
{
public string[]? Args { get; init; } // The command line arguments.
public string? EnvironmentName { get; init; } // The environment name.
public string? ApplicationName { get; init; } // The application name.
public string? ContentRootPath { get; init; } // The content root path.
public string? WebRootPath { get; init; } // The web root path.
...
}
Имелось в виду, конечно, непосредственно из кода это решительно непонятно. Интересно, в IDE хотя бы "провалиться" в этоn new() можно? Или хоть всплывающая подсказка с типом появляется?
В отличие от ConfigureHostBuilder, который немедленно выполнял переданный делегат, BootstrapHostBuilder «сохраняет» переданные делегаты в список для последующего выполнения
Исследуем .NET 6. Часть 3. Рассматриваем код WebApplicationBuilder