カスタム コンバーターを使用してデフォルトのシリアル化を処理します
カスタム System.Text.Json.JsonConverter を作成する場合、カスタムのシリアル化は必要ないため、必ずしも Write() メソッドを変更する必要があるとは限りません。この記事では、Write() メソッドでのカスタム動作の使用を回避するために、デフォルトのシリアル化を自動的に生成する方法について説明します。
背景
JsonConverter は、優先度に従ってプロパティ、オブジェクト、または型に適用されます。次の状況が存在します:
それぞれの状況は異なる方法で処理されます。
デフォルトのシリアル化メソッド
便利なカスタムファクトリーと拡張機能
プロセスを簡素化するために、Write() メソッドを変更せずにカスタム シリアル化を処理できるカスタマイズ可能なファクトリを作成できます。
<code>public class DefaultConverterFactory<T> : JsonConverterFactory { // 此处为内部 DefaultConverter 实现 }</code>
このファクトリーは、JsonSerializerOptions のコピーの作成を管理するカスタム コンバーターの基礎として機能します (カスタム コンバーターは削除されました)。 Write() メソッドのデフォルトのシリアル化のオプションを変更しました。
<code>public class PersonConverter : DefaultConverterFactory<Person> { // 此处为 Read 和 Write 方法实现 }</code>
DefaultConverterFactory 基本クラスを使用すると、Read() メソッドのカスタム動作を維持しながら、Write() メソッドがデフォルトのシリアル化を実行することを保証できます。
その他の注意事項
以上が書き込みメソッドを変更せずに System.Text.Json カスタム コンバーターでデフォルトのシリアル化を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。