Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.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# 一个中间件如何调用另一个中间件?_C#_Asp.net - Fatal编程技术网

C# 一个中间件如何调用另一个中间件?

C# 一个中间件如何调用另一个中间件?,c#,asp.net,C#,Asp.net,我正在学习ASP.NET核心,我被卡住了。我知道一个中间件调用另一个中间件,而且我知道如何调用,但我不明白这是怎么回事 请参阅此代码: app.Use(async (context,next) => { await next(); }); app.Run(async (context) => { await context.Response.WriteAsync("Hello from 2nd middleware!"); }); 一周前,我学习了C#中的线程和任务,

我正在学习ASP.NET核心,我被卡住了。我知道一个中间件调用另一个中间件,而且我知道如何调用,但我不明白这是怎么回事

请参阅此代码:

app.Use(async (context,next) =>
{
   await next();
});

app.Run(async (context) =>
{
   await context.Response.WriteAsync("Hello from 2nd middleware!");
});
一周前,我学习了C#中的线程和任务,现在我正试图理解这一点。 第一个中间件被调用,它使用
wait next()调用第二个中间件
但它如何知道什么是第二位呢?

根据微软的说法:

在中添加中间件组件的顺序 Configure方法定义中间件运行的顺序 组件在请求时被调用,而 答复

ApplicationBuilder是包含您在调用.Use()、.Run()、.Map()时添加的组件的列表。正如你们可能知道的,这个列表是保持秩序的


有关更多信息:

它如何知道下一个是哪个?因为
next
在被调用时被传递到它。