日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

ASP.NET Core 中间件分类

發布時間:2023/12/4 asp.net 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET Core 中间件分类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

ASP.NET Core 中間件的配置方法可以分為以上三種,對應的Helper方法分別是:Run(), Use(), Map()。

  • Run(),使用Run調用中間件的時候,會直接返回一個響應,所以后續的中間件將不會被執行了。

  • Use(),它會對請求做一些工作或處理,例如添加一些請求的上下文數據,有時候甚至什么也不做,直接把請求交給下一個中間件。

  • Map(),它會把請求重新路由到其它的中間件路徑上去。

實際中呢,Use()這個helper方法用的最多。

?

Run():

?

?這是一個使用Run方法調用的中間件,Run方法會終止整個中間件管道,它應該返回某種類型的響應。

?

Use():

?

?Use看起來和Run差不多,但是多了一個next參數。next可以用來調用請求管道中的下一個中間件。而當前的中間件也可以自己返回響應,這就忽略掉了next調用。

在next調用之前,我們可以寫一些請求進來的邏輯,而在next調用之后,就相當于返回響應了,這時候也可以寫一些邏輯。

在本例中,我們下面還使用了Run方法注冊了另一個中間件。因為中間件會按照它們注冊的順序進行調用,所以在第一個Use方法里執行next.Invoke()的時候,就會執行下面Run所調用的中間件。

?

Map():

?

?Map方法可以把請求路由到其它的中間件上面。

在這里,如果請求的路徑以/jump結尾,那么它所對應的handler方法,也就是HereIAm方法的中間件就會被調用,并返回一個響應。

而如果請求的路徑不是以/jump結尾,那么HereIAm方法里面的中間件就不會被調用。

?

中間件Class

上面的例子,我都是使用的inline寫法的中間件。

而實際上,中間件通常是自成一個類。中間件的類需要類似這樣:

?

?自定義的中間件類需要由這幾部分組成:

  • 接受一個RequestDelegate類型的參數next的構造函數。

  • 按約定,還需要定義一個叫做Invoke的方法。該方法里會包含主要的業務邏輯,并且它會被請求管道所執行。Invoke方法可以忽略里面的_next調用,并返回一個響應;也可以調用_next.Invoke()把請求發送到管道的下一站。

?

總結

以上是生活随笔為你收集整理的ASP.NET Core 中间件分类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。