.Net Core中间件中IApplicationBuilder.Map()的用法

Map 扩展方法用于匹配基于请求路径的请求委托。Map 只接受路径,并配置单独的中间件管道的功能在StartUp.Config()方法里使用第一种用法:app.Map(/api/MessageRelease, new Controllers.MessageRelease().Map);...

Map 扩展方法用于匹配基于请求路径的请求委托。Map 只接受路径,并配置单独的中间件管道的功能

在StartUp.Config()方法里使用

第一种用法:

app.Map("/api/MessageRelease", new Controllers.MessageRelease().Map);

第二种用法:

app.MapWhen(context => {
         return context.Request.Query.ContainsKey("MessageRelease");
}, new Controllers.MessageRelease().Map);

第一种和第二种的区别在于,筛选请求的方式不同,第一种只要是请求“/api/MessageRelease”都会进入到Controllers.MessageRelease().Map方法,而第二种是只要请求里面包含“MessageRelease”就会进入到Controllers.MessageRelease().Map方法

不管那种方式,只要使用了 Map,每个请求所匹配的路径段将从 HttpRequest.Path 中移除,并附加到 HttpRequest.PathBase 中。

而Controllers.MessageRelease().Map()方法里面会再使用app.Use(),相当于在处理请求之前,先对请求筛选到指定委托

本文标题为:.Net Core中间件中IApplicationBuilder.Map()的用法