В документации на docs.microsoft.com указано следующее:
Use ConfigureServices method to add services to the container.
Use Configure method to configure the HTTP request pipeline.
Может ли кто-нибудь объяснить на простых примерах, что подразумевается под добавлением служб в контейнер и что подразумевается под настройкой конвейера HTTP-запросов?
... и он также включает примеры по запросу.





В двух словах:
ConfigureServices используется для настройки внедрения зависимостей
public void ConfigureServices(IServiceCollection services)
{
// register MVC services
services.AddMvc();
// register configuration
services.Configure<AppConfiguration>(Configuration.GetSection("RestCalls"));
// register custom services
services.AddScoped<IUserService, UserService>();
...
}
Configure используется для настройки промежуточного программного обеспечения, правил маршрутизации и т. д.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
// configure middlewares
app.UseMiddleware<RequestResponseLoggingMiddleware>();
app.UseMiddleware<ExceptionHandleMiddleware>();
app.UseStaticFiles();
// setup routing
app.UseMvc(routes =>
{
routes.MapRoute(
name: "Default",
template: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = 1 });
});
}
Прочтите Основы ASP.NET Core, чтобы подробно понять, как это работает.
Интересно, что методы DI - это в основном «Добавить ...», а методы промежуточного программного обеспечения - в основном «Использовать ...». Имеет смысл.
@Alex Riabov, ConfigureServices включает только DI? как насчет services.AddIdentity, задействован ли какой-либо «DI»?
@secondimage, да, в конце концов, он регистрирует службы аутентификации: github.com/aspnet/HttpAbstractions/blob/master/src/…
@AlexRiabov .AddIdentity не видел, только .AddAuthenticationCore
он вызывается из AddAuthentication (github.com/aspnet/AspNetCore/blob/master/src/Security/…), который вызывается из AddAuthenticationgithub.com/aspnet/AspNetCore/blob/master/src/Identity/Core/s rc /…
Элементы в ConfigureServices являются частью Dependency Injection, например, регистратором, базой данных и т. д. Такие вещи не связаны с HTTP-запросом напрямую.
Элементы в configure являются частью HTTP-запрос, например, маршрутизация, промежуточное ПО, статические файлы - все эти триггеры запускаются непосредственно, когда пользователь делает запрос.
Документация Запуск приложения в ASP.NET Core