Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET核心中的ConfigureServices()和Configure()之间有什么区别?_C#_Asp.net Core - Fatal编程技术网

C# ASP.NET核心中的ConfigureServices()和Configure()之间有什么区别?

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

docs.microsoft.com上的文档说明如下:

使用ConfigureServices方法将服务添加到容器中

使用Configure方法配置HTTP请求管道

有人能用简单的例子解释一下,向容器添加服务意味着什么,配置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>();
    ...
}

阅读以详细了解其工作原理。
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 });

    });
}