原创 Newtonsoft.Json/Json.NET忽略序列化時的意外錯誤

在.NET中Newtonsoft.Json(Json.NET)是我們常用來進行Json序列化與反序列化的庫。 而在使用中常會遇到反序列化Json時,遇到不規則的Json數據解構而拋出異常。 Newtonsoft.Json 支持序列化和反序列

原创 C# 12 攔截器 Interceptors

攔截器Interceptors是一種可以在編譯時以聲明方式替換原有應用的方法。 這種替換是通過讓Interceptors聲明它攔截的調用的源位置來實現的。 您可以使用攔截器作爲源生成器的一部分進行修改,而不是向現有源編譯添加代碼。   演示

原创 .Net Core 使用 TagProvider 與 Enricher 豐富日誌

TagProvider  [LogProperties] 與 [LogPropertyIgnore] 如果用在DTO不存在任何問題,如果用在Domain實體上,可能有點混亂。 您可能不希望因日誌記錄問題而使您的域模型變得混亂。對於這種情況,

原创 使用 LogProperties source generator 豐富日誌

Nuget包 Microsoft.Extensions.Telemetry.Abstractions 包含的新的日誌記錄source generator,它支持使用[LogProperties]將整個對象作爲State與日誌一起記錄。 我將

原创 .NET Core使用 CancellationToken 取消API請求

您是否曾經訪問過一個網站,它需要很長時間加載,最終你敲擊 F5 重新加載頁面。 即使用戶刷新了瀏覽器取消了原始請求,而對於服務器來說,API也不會知道它正在計算的值將在結束時被丟棄,刷新五次,服務器將觸發 5 個請求。 爲了解決這個問題,A

原创 .Net Core 你必須知道的source-generators

源生成器是 C# 9 中引入的一項功能,允許在編譯過程中動態生成代碼。 它們直接與 C# 編譯器集成(Roslyn)並在編譯時運行,分析源代碼並根據分析結果生成附加代碼。 源生成器提供了一種簡化的自動化代碼生成方法,無需外部工具或單獨的預

原创 LoggerMessageAttribute 高性能的日誌記錄

.NET 6 引入了 LoggerMessageAttribute 類型。 使用時,它會以source-generators的方式生成高性能的日誌記錄 API。 source-generators可在編譯代碼時,可以提供其他源代碼作爲編譯

原创 DiagnosticSource DiagnosticListener 無侵入式分佈式跟蹤

ASP.NET Core 中的框架中發出大量診斷事件,包括當前請求進入請求完成事件,HttpClient發出收到與響應,EFCore查詢等等。 我們可以利用DiagnosticListener來選擇性地監聽這些事件,然後通過自己的方式組織這

原创 .Net Core中使用DiagnosticSource進行日誌記錄

System.Diagnostics.DiagnosticSource 可以豐富地記錄程序中地日誌,包括不可序列化的類型(例如 HttpResponseMessage 或 HttpContext)。 System.Diagnostics.

原创 多個 .NET Core SDK 版本之間進行切換 global.json

由於同一臺電腦可以安裝多個版本的.NET Core SDK。 當安裝了許多不同版本的.NET Core SDK 之後,要如何才能使用舊版dotnet 命令,執行dotnet new 或dotnet build 之類的命令? 這部分其實並不困

原创 HttpClientHandler VS SocketsHttpHandler

.NET Framework 和 .NET Core 2.0 及更低版本中由 HttpClient 使用的默認消息處理程序爲HttpClientHandler。 從 .NET Core 2.1 開始,類SocketsHttpHandler

原创 用AI在本地給.NET設計幾張壁紙

AI是當今和未來非常重要的技術領域之一,它在各個行業都有廣泛的應用,如醫療保健、金融、教育、製造業等。學習AI可以讓你瞭解和掌握未來技術發展的核心,併爲未來的職業發展做好準備。現在有很多開源的Model可以讓我們使用,使用這些開源Model

原创 將 .NET Aspire 部署到 Kubernetes 集羣

使用Aspirate可以將Aspire程序部署到Kubernetes 集羣 工具安裝 dotnet tool install -g aspirate --prerelease 注意:Aspirate 正在開發中,該軟件包將作爲預覽版進行版本

原创 .NET8 Blazor新特性 流式渲染

什麼是SSR Blazor中的流式渲染結合了SSR(服務端渲染),服務端將HTML拼好返回給前端,有點像我們熟知的Razor Pages 或 MVC 。 當已經有了 Razor Pages 或 MVC 時,爲什麼還要選擇使用 Blazor

原创 .NET8 Blazor的Auto渲染模式的初體驗

.NET8發佈後,Blazor支持四種渲染方式 靜態渲染,這種頁面只可顯示,不提供交互,可用於網頁內容展示 使用Blazor Server託管的通過Server交互方式 使用WebAssembly託管的在瀏覽器端交互方式 使用Auto自動