ASP.NET CORE RequestDelegate
什么是RequestDelegate
IApplicationBUilder接口中包含以下方法,用来配置中间件,对于这个中间件的定义实则是一个处理请求的委托输入输出均为这个类
1 | IApplicationBuilder Use(Func<RequestDelegate, RequestDelegate> middleware); |
再来看看另外一个扩展方法,这个同样使用了RequestDelegate,但是只传入了RequestDelegate,没有传出这个类,这是作为最后一个中间件的写法,用于实际处理业务需求,如摘要所写(Adds a terminal middleware delegate to the application’s request pipeline.)。
1 | namespace Microsoft.AspNetCore.Builder |
下面看看这个RequestDelegate实际是什么,下面是其定义,传入了一个请求上下文,返回了一个异步任务,用于响应请求。
1 | namespace Microsoft.AspNetCore.Http |
让我们来实现一个RequestDelegate,下面是一个静态方法,作为一个获取请求方法(Get还是Post)的处理器,这里只是一个处理器,并不是中间件,因为
1 | public static Task GetRequestMethod(HttpContext httpContext) |
在实际使用中一般简写为
1 | app.Run(async context => |