简述
Use:通过Use的方式注册中间件,可以控制是否将请求传递到下一个中间件;
Run:通过Run的方式注册中间件,一般用于断路或请求管道末尾,即不会将请求传递下去;
这两个方法都在startup class的configure方法里面调用。都是用来向应用请求管道里面添加中间件的。
如下案例:
public void Configure(IApplicationBuilder app, IHostingEnvironment env){
//可以看到通过匿名函数实现的中间件是内嵌在启动类文件中的,因此通常也叫做内联中间件。
app.Use(async (context, next) =>{
await context.Response.WriteAsync("One Holle Word 1!\r\n");
await next();//传递到下一个中间件,而不是先执行下面的
await context.Response.WriteAsync("One Holle Word 2!\r\n");
});
app.Run(async (context) =>{
await context.Response.WriteAsync("Two Holle Word 1!\r\n");
await context.Response.WriteAsync("Two Holle Word 2!\r\n");
});
}
执行结果,注意看执行顺序。