任務28:RequestDelegate管道實現思路git
管道的實現機制github
RequestDelegate是管道的核心。ApplicationBuilder就是接收了不少個RequestDelegae把它拼到一塊兒。api
第一種方式接受一個Context和next,next就是RequestDeletgate。這種方式是沒有返回值的asp.net
下面這種方式是接受一個RequestDelegate,返回了一個RequestDelegate。ui
接收一個next本身沒有作什麼事情,把本身要作的事情封裝成了一個Function交給別人,也就是咱們的ApplicationBuilder來負責處理。spa
接下就去看一下咱們的ApplicationBuilder,它是如何在你註冊以後,我經過Build的方式構建整個管道的.net
看asp.net core的源代碼blog
這裏接收一個RequestDelegateget
最終的Build的方法it
ApplicationBuilder的源代碼
https://github.com/aspnet/AspNetCore/blob/master/src/Http/Http/src/Internal/ApplicationBuilder.cs
最後進行了反轉