ASP.NET Core 6 Middleware 的單元測試

在 ASP.NET Core 的整合測試我們可以使用 WebApplicationFactory、TestServer,這我前面幾篇已經提過了需要的可以參考之前的文章 WebApplicationFactoryTestServer。Middleware 用上述的步驟肯定是沒有問題的,但是需要的環境、步驟也比較多,可能還會因為其他 Middleware 順序所帶來的影響,今天我還要分享 ASP.NET Core內建 Mock HttpContext 做法,讓我們可以快速的針對某一個 Middleware 進行單元測試

...繼續閱讀 »

[ASP.NET Core 6] 讓你的 ASP.NET Core Web API + Swashbuckle.AspNetCore 支援多個版本

一旦 Web API 部署並開始使用後,它應該是可靠的,並且不應該因任何原因而中斷。另一方面,隨著需求的變化,我們需要更新 Web API 代碼,但這應該不破壞目前 API 的情況下完成,因此新舊版本的 Web  API 都將處於活動狀態,功能也要正常。這時候就要靠 Web  API 版本控制,我們靠它用於處理不同版本的Web  API。微軟的   Microsoft.AspNetCore.Mvc.Versioning 可以讓我們輕易的完成此項目,但我在整合到 Swagger UI / Swashbuckle.AspNetCore 的時候碰到了一些關卡,所幸順利的解決了,以下是我的實作筆記。

 

...繼續閱讀 »

如何使用 Microsoft.Extensions.DependencyInjection for Autofac

微軟提供的 DI Container (Microsoft.Extensions.DependencyInjection ),實作了 Microsoft.Extensions.DependencyInjection.Abstractions 抽象,讓我們也可很輕易的換成我們習慣的 DI Container,比如說,內建的 Microsoft.Extensions.DependencyInjection 沒有提供掃描 Assembly 的自動註冊,這時,在應用程式的進入點換成其它的 DI Container,比如 Autofac,就可以使用自動註冊。

只有增加使用 Autofac DI Container 的註冊,其餘的不用動,像是物件的依賴關係,取出物件方式。

...繼續閱讀 »

如何使用 DI Container for Microsoft.Extensions.DependencyInjection

Microsoft.Extensions.DependencyInjection 是微軟實作的 DI Container,在 ASP.NET Core 大量的使用,無形之間已經成為一種開發標準,過去,還沒有使用 DI Container 時,我會使用靜態屬性來集中管理物件的生命週期,現在,集中管理物件的生命週期,我又多了一個選擇。

Microsoft.Extensions.DependencyInjection 支援 .NET Fx 4.6.1 以上

...繼續閱讀 »

如何使用 Microsoft.Extensions.Logging for NLog

  • 13661
  • 0
  • Log
  • 2020-10-29

.NET 提供了標準化的 Log (Microsoft.Extensions.Logging),NLog 4.5 的時候支援了結構化日誌,同時也實作標準日誌,由於程式碼已經依賴了標準,引用 NLog 也只是彈指之間的設定,仍然可以使用舊的 NLog.Config。還不知道如何使用標準化日誌請看 這裡

...繼續閱讀 »