馬上2016年就要過(guò)去了,時(shí)間可是真快啊。
上次寫(xiě)完 Identity 系列之后,反響還不錯(cuò),所以本來(lái)打算寫(xiě)一個(gè) ASP.NET Core 中間件系列的,但是中間遇到了很多事情。首先是 NPOI 的移植工作,移植過(guò)后還有一些Bug需要修復(fù),然后一個(gè)事情是一個(gè)有關(guān)于分布式架構(gòu)中消息一致性的一個(gè)中間件設(shè)計(jì)開(kāi)發(fā)工作,還有就是博客還要堅(jiān)持寫(xiě),最后就是還有好幾本書(shū)需要讀,以及消化學(xué)習(xí),所以深深感覺(jué)到時(shí)間不夠用。廢話不多說(shuō)了,進(jìn)入主題。
大部分中間件都是要依賴(lài)于 HTTP 管道和 HttpAbstractions 提供的上下文的,所以有必要先介紹一下 ASP.NET Core 在管道中封裝了什么,了解清楚之后有助于更高的進(jìn)階學(xué)習(xí)。你看不懂也沒(méi)有關(guān)系,對(duì)這些概念有一個(gè)認(rèn)識(shí)就可以了,不需要你精通每一步都具體做了哪些東西,達(dá)到會(huì)用就是我的目的。因?yàn)槲矣X(jué)得隨著你以后開(kāi)發(fā)的深入,對(duì)這些東西使用多了之后,自然會(huì)想了解更多,到那個(gè)時(shí)候,你就會(huì)去看源碼了。
IApplicationBuilder
IApplicationBuilder
是應(yīng)用大家最熟悉它的地方應(yīng)該就是位于 Startup.cs 文件中的 Configure 方法了吧
public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory){ app.UseDeveloperExceptionPage(); app.UseStaticFiles(); app.UseMvc(); }
IApplicationBuilder 就像其名字一樣,其實(shí)很簡(jiǎn)單,就是對(duì)內(nèi)做了一個(gè)接口封裝,對(duì)外提供了一個(gè)擴(kuò)展,具體來(lái)說(shuō)就是
對(duì)內(nèi)封裝了
IServiceProvider ApplicationServices { get; set; }
:應(yīng)用程序使用的服務(wù),就是ConfigureServices注入的那些。延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無(wú)線安全]玩轉(zhuǎn)無(wú)線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問(wèn)題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來(lái)看看(二) 2017-07-26