Как работают методы расширения для IApplicationBuilder в ASP.NET Core?

Вопрос касательно методов расширения для IApplicationBuilder. Допустим, есть Run(IApplicationBuilder, RequestDelegate), добавили делегат вида

app.Run(async (context) =>
        {
            await context.Response.WriteAsync("Some text.");
        });

Я понимаю, что в конвейер обработки запросов добавился данный метод. Он ожидает context и что-то делает. То же касается и app.UseEndpoints(Action<IEndpointRouteBuilder>). Правильно ли понял, что в среде есть объект EndpointRouteBuilder, который на этапе запуска приложения предоставляется средой при вызове, дополняется нашей конфигурацией и встраивается в ApplicationBuilder?

Правильно ли я понимаю, что данный context, как и остальные параметры для RequestDelegate в middleware подставляет (передает) в методы сама среда ASP.NET при обработке запроса, когда таковой приходит? Т.е. при написании данных методов и передачи им разных Action<T> я должен понимать, что этот T ожидается средой и, в зависимости от метода расширения для ApplicationBuilder, данные параметры будут подставлены средой? Я внимательно прочитал MSDN, просто хочется знать, правильно ли я понял концепцию?


Ответы (0 шт):