2023-09-21 csharpdotnetdotnet-8 .NET 8 非公開プロパティへのデシリアライズ .NET 8 で、JsonInclude 属性とパラメーター付きコンストラクターを使って、JSON を非公開プロパティにデシリアライズする方法を解説します。
2023-09-17 csharpdotnetdotnet-8 .NET 8 native AOT で JsonStringEnumConverter を使う方法 .NET 8 で追加された JsonStringEnumConverter<TEnum> を使って、System.Text.Json で native AOT 対応の enum シリアライズを行う方法を解説します。
2023-09-14 csharpdotnetdotnet-8 The type or namespace name InterceptsLocationAttribute could not be found C# interceptors の InterceptsLocationAttribute に関する CS0246 エラーを、自分で属性を定義することで解消する方法を解説します。
2023-09-11 csharpdotnetdotnet-8 .NET 8 JsonSerializerOptions を readonly としてマークする .NET 8 で MakeReadOnly を使って JsonSerializerOptions のインスタンスを読み取り専用にする方法と、IsReadOnly プロパティでそれを確認する方法を解説します。
2023-09-07 csharpdotnetdotnet-8 .NET 8 Half、Int128、UInt128 のシリアライズ .NET 8 の System.Text.Json は、Half、Int128、UInt128 という数値型のシリアライズに、組み込みで対応するようになりました。
2023-09-06 csharpdotnetdotnet-8 .NET 8 Memory<byte> は base64 としてシリアライズされる .NET 8 から、Memory<byte> と ReadOnlyMemory<byte> は Base64 文字列としてシリアライズされます。Memory<int> など他の型は引き続き JSON 配列のままです。
2023-09-05 csharpdotnetdotnet-8 .NET 8 非公開メンバーを JSON シリアライズに含める .NET 8 で JsonInclude 属性を使って、private、protected、internal なプロパティを JSON シリアライズに含める方法を解説します。
2023-08-31 csharp C# 12 インライン配列 (Inline arrays) インライン配列を使うと、struct 型の中に固定サイズの配列を作成できます。インラインバッファーを持つそのような struct は、unsafe な固定サイズバッファーと同等のパフォーマンスを発揮します。インライン配列は主にランタイムチームや一部のライブラリ作者が、特定のシナリオでパフォーマンスを改善するために使うことを想定しています。多くの場合...
2023-08-30 csharp C# 12 コレクション式 (Collection expressions) C# 12 では、配列を作るための新しい簡潔な構文が導入されました。次のような形です。重要な点として、配列の型は明示的に指定する必要があるため、変数宣言に var は使えません。同様に、Span<int> を作りたい場合は次のようにできます。多次元配列 この簡潔な構文の利点は...
2023-08-11 csharpdotnet C# プロセスの終了を待つには? プロセスの終了を待つには WaitForExit メソッドが使えます。コードは同期的にプロセスの終了を待ち、その後で実行を再開します。例を見てみましょう。上のコードは新しい cmd.exe プロセスを開始し、timeout 5 コマンドを実行します。process.WaitForExit() の呼び出しによって、プログラムは...