1. 程式人生 > >asp.net core 中介軟體應用

asp.net core 中介軟體應用

每個中介軟體擴充套件方法都通過 Microsoft.AspNetCore.Builder 名稱空間在 IApplicationBuilder 上公開。

中介軟體的執行方式

預設情況下,中介軟體的執行順序根據Startup.cs檔案中,在public void Configure(IApplicationBuilder app){} 方法中註冊的先後順序執行。
大概有3種方式可以在管道中註冊"中介軟體"

app.Use(),IApplicationBuilder介面原生提供,註冊等都用它。
app.Run() ,是一個擴充套件方法,它需要一個RequestDelegate委託,裡面包含了Http的上下文資訊,沒有next引數,因為它總是在管道最後一步執行。
app.Map(),也是一個擴充套件方法,類似於MVC的路由,用途一般是一些特殊請求路徑的處理。如:www.example.com/token 等。
上面的Run,Map內部也是呼叫的Use,算是對IApplicationBuilder介面擴充,如果你覺得名字都不夠準確,那麼下面這個擴充套件方法就是正宗的註冊中介軟體的了,也是功能最強大的。
app.UseMiddleware<>(),沒錯,就是這個了。 為什麼說功能強大呢?是因為它不但提供了註冊中介軟體的功能,還提供了依賴注入(DI)的功能,以後大部分情況就用它了。