C# ASP.NET核心中的ConfigureServices()和Configure()之间有什么区别?
docs.microsoft.com上的文档说明如下: 使用ConfigureServices方法将服务添加到容器中 使用Configure方法配置HTTP请求管道 有人能用简单的例子解释一下,向容器添加服务意味着什么,配置HTTP请求管道意味着什么吗?简而言之:C# ASP.NET核心中的ConfigureServices()和Configure()之间有什么区别?,c#,asp.net-core,C#,Asp.net Core,docs.microsoft.com上的文档说明如下: 使用ConfigureServices方法将服务添加到容器中 使用Configure方法配置HTTP请求管道 有人能用简单的例子解释一下,向容器添加服务意味着什么,配置HTTP请求管道意味着什么吗?简而言之: ConfigureServices用于配置依赖项注入 public void ConfigureServices(IServiceCollection services) { // register MVC services
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>();
...
}
阅读以详细了解其工作原理。
ConfigureServices
中的项是依赖项注入的一部分,如记录器、数据库等。此类内容与http请求没有直接关联
configure
中的项目是http请求的一部分如路由、MIDIDleware、静态文件所有这些都是在用户发出请求时直接触发的。文档…还包括请求的示例。有趣的是,DI方法大多是“添加…”,中间件方法大多是“使用…”。有道理。@Alex Riabov是否ConfigureServices
只涉及DI
?关于服务如何。AddIdentity
,是否涉及任何“DI”?@secondimage,是的,最终它注册了身份验证服务:@AlexRiabov我没有看到。AddIdentity
,只看到。AddAuthenticationCore
它是从AddAuthentication
()调用的,它是从AddAuthentication
调用的
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 });
});
}