一步一步遷移ASP.NET Core 6.0-Part2
- 2022 年 3 月 22 日
- 筆記
- .NET, .NET Core, .NET Framework, .NET Research, c#
.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