ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 03. 服務註冊和管道

ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 03. 服務註冊和管道
語雀:
https://www.yuque.com/yuejiangliu/dotnet/olbl88
視頻地址:https://www.bilibili.com/video/av38392956/?p=3web

自定義接口對象獲取信息 如今不想從配置源裏面獲取信息,本身寫一個服務,首先弄一個接口叫作IWelcomeService

假設接口有這麼一個方法getMessage()

那麼不管是哪一個對象或者服務實現了這個接口,那麼我就能夠從實現了該接口的對象或者服務裏來獲取這個信息
把鼠標放在這,按Ctrl+.選擇第一條在新的文件裏面生成

而後這個接口就聲明到了這裏

這時候提示沒有定義這個GetMessage方法

仍是把鼠標放在這,Ctrl+.

x修改返回類型爲string,如今就定義完了

建立WelComeService實現該接口,而後在接口上Ctrl+.實現該接口


接口實現完了

返回這段字符串


把它移動到這個文件裏

如今就是一個單獨的類了

如今接口有個實現了該接口的類也有了
這裏也調用了GetMessage()的方法

打開命令行

dotnet run 直接報錯了

主要的錯誤信息:意思就是沒法找到實現了IWelcome的接口的對象

須要註冊一個服務,對應着這個IWelcomeService
下面這兩個服務都已經註冊過了 是asp.net core 默認的配置,IWelcomeService是咱們本身定義的接口,這個接口尚未進行註冊

ConfigureServices方法就是用來註冊服務的

這是一些預先設置的註冊的服務的一些形式。

IWelcomeService是咱們自定義的,有這麼這幾種方式註冊。
下面使用單例模式進行註冊的形式。在整個web項目的生命週期裏,最多隻會出現一個WelcomeService的實例

AddTransient:每次請求,每次有其餘的類或者方法請求IWelcomeService的時候,它都創建一個新的WelcomeService的實例,它
是很是輕量級的

AddScoped:,每次http請求,一次web請求就會生成一次實例,在這個web請求期間,若是屢次請求,那麼他仍是使用同一個WelcomeService實例

這裏咱們使用到單例模式,再次運行項目


asp.net

管道和中間件



中間件決定如何處理這個請求,中間件其實就是一個對象,每一箇中間件的角色和功能都不同,每一箇中間件功能都侷限在特定的領域內,
因此咱們整個web應用,將會使用不少箇中間件
管道是雙向設計的,一個請求進入管道會按照我添加的順序依次進入中間件,我首先添加的是Logger,那麼請求就先通過logger,下一個添加的是受權中間件,就會通過受權的中間件,最後是路由的,就會走路由的中間件
假設路由中間價產生了一個響應,那麼這個響應就原路返回,路由--受權--logger和進入的時候路徑是相反的

咱們須要按照特性的順序來設置咱們的中間件組成咱們的web應用的功能








 ide

相關文章
相關標籤/搜索