前面的實例演示了服務承載的基本編程模式,接下來我們從設計的角度來重新認識服務承載模型。總的來說,服務承載模型主要由如下圖所示的三個核心對象組成:多個通過IHostedService接口表示的服務被承載於通過IHost接口表示的宿主上,IHostBuilder接口表示IHost對象的構建 ...
在了解了作為服務宿主的IHost接口之后,我們接着來認識一下作為宿主構建者的IHostBuilder接口。如下面的代碼片段所示,IHostBuilder接口的核心方法Build用來提供由它構建的IHost對象。除此之外,它還具有一個字典類型的只讀屬性Properties,我們可以將它視為一個共享的數據容器。 作為一個典型的設計模式,Builder模式在最終提供給由它構建的對象之前,一般會允許作相應 ...
2020-03-05 08:01 6 2135 推薦指數:
前面的實例演示了服務承載的基本編程模式,接下來我們從設計的角度來重新認識服務承載模型。總的來說,服務承載模型主要由如下圖所示的三個核心對象組成:多個通過IHostedService接口表示的服務被承載於通過IHost接口表示的宿主上,IHostBuilder接口表示IHost對象的構建 ...
實際上HostBuilder對象並沒有在實現的Build方法中調用構造函數來創建Host對象,該對象利用作為依賴注入容器的IServiceProvider對象創建的。為了可以采用依賴注入框架來提供構建的Host對象,HostBuilder必須完成前期的服務注冊工作。總地來說,HostBuilder ...
三、配置選項 真正的應用開發總是會使用到配置選項,如演示程序中性能指標采集的時間間隔就應該采用配置選項的方式來指定。由於涉及對性能指標數據的發送,所以最好將發送的目標地址定義在配置選項中。如果有多種傳輸協議可供選擇,就可以定義相應的配置選項。.NET Core應用推薦采用Options模式來使 ...
了針對文件系統變換的監控功能,在.NET Core下里類似的功能大都利用一個IChangeToken對 ...
在《讀取配置數據》([上篇],[下篇])上面一節中,我們通過實例的方式演示了幾種典型的配置讀取方式,接下來我們從設計的維度來重寫認識配置模型。配置的編程模型涉及到三個核心對象,分別通過三個對應的接口(IConfiguration、IConfigurationSource ...
借助.NET Core提供的承載(Hosting)系統,我們可以將任意一個或者多個長時間運行(Long-Running)的服務寄宿或者承載於托管進程中。ASP.NET Core應用僅僅是該承載系統的一種典型的服務類型而已,任何需要在后台長時間運行的操作都可以定義成標准化的服務並利用該系統來承載 ...
我們在《總體設計[上篇]》和《總體設計[下篇]》中通過對IHostedService、IHost和IHostBuider這三個接口的介紹讓讀者朋友們對服務承載模型有了大致的了解。接下來我們從抽象轉向具體,看看承載系統針對該模型的實現是如何落地的。要了解承載模型的默認實現,只需要了解IHost接口 ...
本系列前面的文章我們主要以編程的角度對ASP.NET Core的依賴注入系統進行了詳細的介紹,如果讀者朋友們對這些內容具有深刻的理解,我相信你們已經可以正確是使用這些與依賴注入相關的API了。如果你還對這個依賴注入系統底層的實現原理具有好奇心,可以繼續閱讀這一節的內容。 目錄 ...