2023-10-31 dotnetdotnet-8 C# UnsafeAccessor: リフレクションなしでプライベートメンバーにアクセス (.NET 8) .NET 8 の `[UnsafeAccessor]` 属性を使って、プライベートフィールドの読み取りやプライベートメソッドの呼び出しをオーバーヘッドゼロで行う方法を解説します。リフレクション不要、AOT にも完全対応。
2023-10-29 csharpdotnetdotnet-8 C# 機能を experimental としてマークする方法 C# 12 から、新しい ExperimentalAttribute を使って型、メソッド、プロパティ、アセンブリを experimental としてマークできるようになりました。diagnosticId、pragma タグ、UrlFormat と組み合わせた使い方を紹介します。
2023-10-28 csharpdotnet C# ref readonly パラメーター C# の ref readonly 修飾子は、読み取り専用の参照を渡すより透明性の高い方法を提供します。in 修飾子に対して、より厳しい制約と呼び出し側からの見えやすさをどう改善するかを解説します。
2023-10-26 csharpdotnetdotnet-8 C# 配列をシャッフルするには? C# で配列をシャッフルするいちばん簡単な方法は、.NET 8 で導入された Random.Shuffle を使うことです。配列にも Span にも、in-place で動作します。
2023-10-25 dotnetdotnet-8 System.Text.Json 既存の type info resolver を変更する方法 .NET 8 で追加された WithAddedModifier 拡張メソッドを使えば、任意の IJsonTypeInfoResolver のシリアライズコントラクトを、新しい resolver をゼロから作らずに簡単に変更できます。
2023-10-24 dotnetdotnet-8 HttpClient で JSON を AsyncEnumerable として取得する .NET 8 で追加された GetFromJsonAsAsyncEnumerable 拡張メソッドは、HTTP レスポンスの JSON を IAsyncEnumerable にデシリアライズします。await foreach と組み合わせた使い方を解説します。
2023-10-23 dotnetdotnet-8 JsonNode .NET 8 の API アップデート .NET 8 で JsonNode と JsonArray に追加された新しい API、GetValueKind、GetPropertyName、GetElementIndex、ReplaceWith、ParseAsync を解説します。
2023-10-22 dotnetdotnet-8 JsonNode のディープクローンとディープイコール .NET 8 で追加された JsonNode の DeepClone() と DeepEquals() メソッドを使って、JSON ノードをディープクローンしたり比較したりする方法を解説します。
2023-10-21 dotnetdotnet-8 System.Text.Json リフレクションベースのシリアライズを無効化する .NET 8 以降、JsonSerializerIsReflectionEnabledByDefault プロパティを使って、trimmed および native AOT アプリで System.Text.Json のリフレクションベースのシリアライズを無効化する方法を解説します。
2023-10-19 csharpdotnetdotnet-8 既存の JsonSerializerOptions に TypeInfoResolver を追加・削除する .NET 8 で追加された TypeInfoResolverChain プロパティを使って、既存の JsonSerializerOptions に TypeInfoResolver を追加したり、そこから削除したりする方法を解説します。