馬上2016年就要過去了,時(shí)間可是真快啊。
上次寫完 Identity 系列之后,反響還不錯(cuò),所以本來打算寫一個(gè) ASP.NET Core 中間件系列的,但是中間遇到了很多事情。首先是 NPOI 的移植工作,移植過后還有一些Bug需要修復(fù),然后一個(gè)事情是一個(gè)有關(guān)于分布式架構(gòu)中消息一致性的一個(gè)中間件設(shè)計(jì)開發(fā)工作,還有就是博客還要堅(jiān)持寫,最后就是還有好幾本書需要讀,以及消化學(xué)習(xí),所以深深感覺到時(shí)間不夠用。廢話不多說了,進(jìn)入主題。
大部分中間件都是要依賴于 HTTP 管道和 HttpAbstractions 提供的上下文的,所以有必要先介紹一下 ASP.NET Core 在管道中封裝了什么,了解清楚之后有助于更高的進(jìn)階學(xué)習(xí)。你看不懂也沒有關(guān)系,對這些概念有一個(gè)認(rèn)識就可以了,不需要你精通每一步都具體做了哪些東西,達(dá)到會用就是我的目的。因?yàn)槲矣X得隨著你以后開發(fā)的深入,對這些東西使用多了之后,自然會想了解更多,到那個(gè)時(shí)候,你就會去看源碼了。
IApplicationBuilder
IApplicationBuilder
是應(yīng)用大家最熟悉它的地方應(yīng)該就是位于 Startup.cs 文件中的 Configure 方法了吧
public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory){ app.UseDeveloperExceptionPage(); app.UseStaticFiles(); app.UseMvc(); }
IApplicationBuilder 就像其名字一樣,其實(shí)很簡單,就是對內(nèi)做了一個(gè)接口封裝,對外提供了一個(gè)擴(kuò)展,具體來說就是
對內(nèi)封裝了
IServiceProvider ApplicationServices { get; set; }
:應(yīng)用程序使用的服務(wù),就是ConfigureServices注入的那些。網(wǎng)友評論