2023-10-29 csharpdotnetdotnet-8 C# 機能を experimental としてマークする方法 C# 12 から、新しい ExperimentalAttribute を使って型、メソッド、プロパティ、アセンブリを experimental としてマークできるようになりました。diagnosticId、pragma タグ、UrlFormat と組み合わせた使い方を紹介します。
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 を追加したり、そこから削除したりする方法を解説します。
2023-10-18 dotnetdotnet-8wpf WPF ファイルダイアログでの選択を最近使った項目に追加しない .NET 8 で AddToRecent を false に設定して、WPF のファイルダイアログでの選択が Windows エクスプローラーの最近使った項目やスタートメニューに表示されるのを防ぐ方法を解説します。
2023-10-13 dotnetdotnet-8wpf WPF ClientGuid を使ってダイアログごとの状態を保持する .NET 8 の ClientGuid プロパティを使って、WPF のファイルダイアログごとに、ウィンドウサイズや位置、最後に使ったフォルダーといった状態を個別に保持する方法を解説します。