static void Main(string[] args) { var app = new ApplicationBuilder(); app.Use(async(context, next) => { Console.WriteLine("中间件1号 Begin"); await next(); Console.WriteLine("中间件1号 End"); }); app.Use(async(context, next) => { Console.WriteLine("中间件2号 Begin"); await next(); Console.WriteLine("中间件2号 End"); }); // 这时候管道已经形成,执行第一个中间件,就会依次调用下一个 // 主机创建以后运行的 var firstMiddleware = app.Build(); // 当请求进来的时候,就会执行第一个中间件 // 主机给的 firstMiddleware(new HttpContext()); }
static void Main(string[] args) { var app = new ApplicationBuilder(); var http = new HttpContext(); app.Use(next => { return(new RequestDelegate((d) => { Console.WriteLine("我是item01方法"); return next(http); })); }); app.Use(next => { return(new RequestDelegate((d) => { Console.WriteLine("我是item02方法"); return next(http); })); }); app.Use(next => { return(new RequestDelegate((d) => { Console.WriteLine("我是item03方法"); return next(http); })); }); app.UserItem04(http); app.Build().Invoke(http); }