在《歷數依賴注入的N種玩法》演示系統(tǒng)自動注冊服務的實例中,我們會發(fā)現輸出的列表包含兩個特殊的服務,它們的對應的服務接口分別是IApplicationLifetime和IHostingEnvironment,我們將分別實現這兩個接口的服務統(tǒng)稱在ApplicationLifetime和HostingEnvironment。我們從其命名即可以看出ApplicationLifetime與應用的聲明周期有關,而HostingEnvironment則用來表示當前的執(zhí)行環(huán)境,本篇文章我們著重來了解ApplicationLifetime與整個AASP.NET Core應用的生命周期有何關系。[本文已經同步到《ASP.NET Core框架揭秘》之中]
目錄
一、ApplicationLifetime
二、WebHost的Run方法
三、遠程關閉應用
一、ApplicationLifetime
從命名的角度來看,ApplicationLifetime貌似是對當前應用生命周期的描述,而實際上它存在的目的僅僅是在應用啟動和關閉時對相關組件發(fā)送相應的信號或者通知而已。如下面的代碼片段所示,IApplicationLifetime接口具有三個CancellationToken類型的屬性(ApplicationStarted、ApplicationStopping和ApplicationStopped),如果需要在應用自動和終止前后執(zhí)行某種操作,我們可以注冊相應的回調在這三個CancellationToken對象上。除了這三個類型為CancellationToken的屬性,IApplicationLifetime接口還定義了一個StopApplication方法,我們可以調用這個方法發(fā)送關閉應用的信號,并最終真正地關閉應用。
1: public interface IApplicationLifetime
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現JSON轉Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應用分析 2017-07-26
- 集合結合數據結構來看看(二) 2017-07-26
