29-自己动手构建RequestDelegate管道
Posted 深圳丶追
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了29-自己动手构建RequestDelegate管道相关的知识,希望对你有一定的参考价值。
1-使用vsCode新建个项目
2-新建RequestDelegate和Context
public delegate Task RequestDelegate(Context context); public class Context{ }
3-Proggram.cs类
using System; using System.Collections.Generic; using System.Threading.Tasks; namespace MypipleLine { class Program { private static List<Func<RequestDelegate,RequestDelegate>> _list = new List<Func<RequestDelegate, RequestDelegate>>(); static void Main(string[] args) { Use((next)=>{ return (context)=>{ Console.WriteLine("1111111111"); return next.Invoke(context); }; }); Use((next)=>{ return (context)=>{ Console.WriteLine("222222222"); return next.Invoke(context); }; }); RequestDelegate end = context=>{ Console.WriteLine("end"); return Task.CompletedTask; }; _list.Reverse(); foreach(var middleware in _list) { end = middleware.Invoke(end); } end.Invoke(new Context()); } static void Use(Func<RequestDelegate,RequestDelegate> middleware){ _list.Add(middleware); } } }
4-显示结果为
以上是关于29-自己动手构建RequestDelegate管道的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET Core快速入门Middleware管道介绍自己动手构建RequestDelegate管道
自己动手编写 Dockerfile 构建自定义的Jenkins
亲自己主动手从源代码 构建 Groovy 2.3.8 公布包
ASP.NET Core 3.1--中间件源码解读--RequestDelegate--ApplicationBuilder.Use