asp.net core 中間件應用
阿新 • • 發佈:2018-12-18
tde public .net core 文件 onf 方式 use configure quest
app.Map(),也是一個擴展方法,類似於MVC的路由,用途一般是一些特殊請求路徑的處理。如:www.example.com/token 等。
上面的Run,Map內部也是調用的Use,算是對IApplicationBuilder接口擴充,如果你覺得名字都不夠準確,那麽下面這個擴展方法就是正宗的註冊中間件的了,也是功能最強大的。
app.UseMiddleware<>(),沒錯,就是這個了。 為什麽說功能強大呢?是因為它不但提供了註冊中間件的功能,還提供了依賴註入(DI)的功能,以後大部分情況就用它了。
每個中間件擴展方法都通過 Microsoft.AspNetCore.Builder 命名空間在 IApplicationBuilder
上公開。
中間件的運行方式
默認情況下,中間件的執行順序根據Startup.cs文件中,在public void Configure(IApplicationBuilder app){} 方法中註冊的先後順序執行。
大概有3種方式可以在管道中註冊"中間件"
app.Use(),IApplicationBuilder接口原生提供,註冊等都用它。
app.Run() ,是一個擴展方法,它需要一個RequestDelegate委托,裏面包含了Http的上下文信息,沒有next參數,因為它總是在管道最後一步執行。
上面的Run,Map內部也是調用的Use,算是對IApplicationBuilder接口擴充,如果你覺得名字都不夠準確,那麽下面這個擴展方法就是正宗的註冊中間件的了,也是功能最強大的。
app.UseMiddleware<>(),沒錯,就是這個了。 為什麽說功能強大呢?是因為它不但提供了註冊中間件的功能,還提供了依賴註入(DI)的功能,以後大部分情況就用它了。
asp.net core 中間件應用