.NET 6 釋出後,我們現有的應用會逐步升級到這個版本,首當其衝的是原因的ASP.NET Core的工程,如果一步一步升級到ASP.NET Core 6.0。
上一篇博文中,跟大家詳細介紹了中介軟體、新增終結點路由、內容根、應用名稱和環境、新增配置提供程式、新增日誌記錄提供程式、DI依賴注入管理新增、註冊服務這幾塊升級中的一些常用程式碼實現。
本文我們繼續其他的一些升級ASP.NET Core 6.0的一些常用程式碼示例。
一、通用主機Host構造器
ASP.NET 5 中使用Host類自定義IHostBuilder的實現程式碼:
升級ASP.NET Core 6.0後的程式碼實現:
在ASP.NET Core 6.0中通過WebApplication這個類可以直接建立一個IHostBuilder的實現Microsoft.AspNetCore.Builder.WebApplicationBuilder,基於這個類設定Host啟動的一些屬性:
如下程式碼:
關於WebApplication的解釋,大家可以參考以下連結:
二、Web主機Host構造器
ASP.NET 5 中使用Host類自定義IHostBuilder的實現程式碼:
升級ASP.NET Core 6.0後的程式碼實現:
在ASP.NET Core 6.0中通過WebApplication這個類可以直接建立一個IHostBuilder的實現Microsoft.AspNetCore.Builder.WebApplicationBuilder,基於這個類設定WebHost啟動需要的一些屬性:
如下程式碼:
三、更改Web根
預設情況下,Web 根是相對於 wwwroot 資料夾中的內容根。 Web 根是靜態檔案中介軟體查詢靜態檔案的位置。
通過設定 WebApplicationOptions 上的 WebRootPath 屬性,可以更改 Web 根:
以下是ASP.NET Core 5.0 中對Web根的使用:
升級ASP.NET Core 6.0後的程式碼實現:
直接設定WebApplicationOptions的WebRootPath即可:
四、自定義依賴注入 (DI) 容器
我們以Autofac 依賴注入框架為例,給大家示例ASP.NET Core5.0的實現和ASP.NET Core6.0的實現
ASP.NET Core 5.0使用Autofac作為DI依賴注入容器的程式碼實現:
ASP.NET Core 6.0使用Autofac作為DI依賴注入容器的程式碼實現:
五、新增服務、使用服務
Startup.Configure 可以注入通過 IServiceCollection 新增的任何服務。
ASP.NET Core 5.0的程式碼實現:
在 ASP.NET Core 6 中:有一些通用服務可用作 WebApplication 上的頂級屬性。
其他服務需要通過 IServiceProvider 從 IServiceProvider 手動解析
以上是升級ASP.NET Core 6.0的一些常用程式碼示例和實踐,分享給大家。
周國慶
2022/3/22