在《歷數(shù)依賴注入的N種玩法》演示系統(tǒng)自動(dòng)注冊(cè)服務(wù)的實(shí)例中,我們會(huì)發(fā)現(xiàn)輸出的列表包含兩個(gè)特殊的服務(wù),它們的對(duì)應(yīng)的服務(wù)接口分別是IApplicationLifetime和IHostingEnvironment,我們將分別實(shí)現(xiàn)這兩個(gè)接口的服務(wù)統(tǒng)稱在ApplicationLifetime和HostingEnvironment。我們從其命名即可以看出ApplicationLifetime與應(yīng)用的聲明周期有關(guān),而HostingEnvironment則用來(lái)表示當(dāng)前的執(zhí)行環(huán)境,本篇文章我們著重來(lái)了解ApplicationLifetime與整個(gè)AASP.NET Core應(yīng)用的生命周期有何關(guān)系。[本文已經(jīng)同步到《ASP.NET Core框架揭秘》之中]

目錄
一、ApplicationLifetime
二、WebHost的Run方法
三、遠(yuǎn)程關(guān)閉應(yīng)用

一、ApplicationLifetime

從命名的角度來(lái)看,ApplicationLifetime貌似是對(duì)當(dāng)前應(yīng)用生命周期的描述,而實(shí)際上它存在的目的僅僅是在應(yīng)用啟動(dòng)和關(guān)閉時(shí)對(duì)相關(guān)組件發(fā)送相應(yīng)的信號(hào)或者通知而已。如下面的代碼片段所示,IApplicationLifetime接口具有三個(gè)CancellationToken類型的屬性(ApplicationStarted、ApplicationStopping和ApplicationStopped),如果需要在應(yīng)用自動(dòng)和終止前后執(zhí)行某種操作,我們可以注冊(cè)相應(yīng)的回調(diào)在這三個(gè)CancellationToken對(duì)象上。除了這三個(gè)類型為CancellationToken的屬性,IApplicationLifetime接口還定義了一個(gè)StopApplication方法,我們可以調(diào)用這個(gè)方法發(fā)送關(guān)閉應(yīng)用的信號(hào),并最終真正地關(guān)閉應(yīng)用。

   1: public interface IApplicationLifetime
   2: {
        		

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式