Start Debugging

タグ: csharp

316 件 · ページ2/32

Refit 16.1はページングループを自動生成: PagedEnumerable、[Paged]、[PageToken]
Refit 16.1.0では、インターフェースのメソッドがPagedEnumerable<TPage, TItem>を返せるようになり、ソースジェネレーターがカーソル、オフセット、レスポンスヘッダー、次へのリンクに対応したページ単位のリクエストループを生成します。宣言方法、列挙の挙動、メンバー名のタイプミスで発生するRF013ビルドエラーについて解説します。
System.Text.Json で Vector3 や Quaternion などの public フィールドをシリアル化する方法
Vector3 や Quaternion はデータを public フィールドに保持しているため、System.Text.Json は Vector3 を {}、Quaternion を {"IsIdentity":false} として書き出します。IncludeFields、カスタムコンバーター、リゾルバーの修飾子、ソース生成でこれを解決する方法を、.NET 10 と .NET 11 RC 1 で計測しながら解説します。
MessagePack 3.1.9 と 2.5.303、32 KiB のペイロードが 120 MiB を確保する問題を修正
CVE-2026-92707: ネストした MessagePack の配列ヘッダーが同じ残りバイト数を使い回して長さチェックを通過できたため、object へのデシリアライズがペイロードサイズの数千倍のアロケーションを引き起こしていました。この修正の内容、修正前後の検証、そして .NET 8 から 11 RC 1 までの SignalR アプリで直接のパッケージ固定が必要な理由を解説します。
Polly 8.8 は独自の IOptionsMonitor からレジリエンスパイプラインをリロードできます
Polly 8.8.0 で EnableReloadsWithMonitor が追加され、DI に登録されていない機能フラグやリモート設定のモニターからレジリエンスパイプラインをホットリロードできるようになりました。検証コードで再構築の様子を示すとともに、落とし穴を 1 つ紹介します。context.GetOptions は引き続き DI のモニターを読むため、既定値が返されます。
2026-09-17 mstesttestingcsharp
MSTest 4.4.1 が、4.4.0 で C# 14 未満において壊れた CS0121 のあいまいな Assert 呼び出しを修正
MSTest 4.4.0 は Assert.Contains と Assert.DoesNotContain に Span<T> と ReadOnlySpan<T> のオーバーロードを追加しました。その結果、net8.0、net9.0、または C# 14 未満のあらゆるプロジェクトで、ごく普通の配列や文字列のアサーションが CS0121 で失敗するようになりました。2026-09-16 に公開された MSTest 4.4.1 は、配列に完全一致するオーバーロードと制約付きのフォワーダーを追加します。ただし、明示的なジェネリック引数を指定する 2 つの呼び出し形式は依然として失敗します。
.NET 11 の Process.Run と Process.Start: どちらを使うべきか
ツールを起動して終了の仕方だけが気になるなら Process.Run を使います。1 回の呼び出しで済み、タイムアウトで子プロセスを強制終了し、シグナルを含む ProcessExitStatus を返します。stdin への書き込み、出力を届いたそばから読む処理、UseShellExecute、プロセスツリー全体の強制終了など、Process オブジェクトが必要な場合は Process.Start を使い続けます。
2026-09-16 dotnetdotnet-11jit
.NET 11 の JIT がジェネリック仮想メソッドを非仮想化し、アロケーションも一緒に消える
Stephen Toub の Performance Improvements in .NET 11 では、ジェネリック仮想メソッド呼び出しが 6.7 ns / 24 バイトから 1.8 ns / アロケーションゼロまで下がっています。3 本の RyuJIT のプルリクエストが、.NET で最も不透明だったディスパッチのインライン化を可能にしました。
前へ 次へ