メインコンテンツ

シリアル化プロセスをカスタマイズする状況

クラスの下位互換性と上位互換性をサポートすることが、オブジェクトのシリアル化 (保存) と逆シリアル化 (読み込み) のプロセスをカスタマイズする主な理由です。クラス定義を変更した場合、シリアル化プロセスをカスタマイズします。これには以下を含みますが、これらに限定されません。

  • プロパティの名前の変更

  • プロパティの追加または削除

  • プロパティの検証の変更

シリアル化プロセスの変更方法

MATLAB® には、シリアル化プロセスをカスタマイズする次の 2 つの方法が含まれています。

シリアル化をカスタマイズするための推奨プロセスは、matlab.mixin.CustomElementSerialization から継承することです。この mixin を matlab.serialization.ElementSerializationContent および matlab.serialization.SerializationContext の機能と組み合わせることで、どの情報をシリアル化および逆シリアル化するかを制御できます。この制御では、同じクラスの異なるバージョン間の堅牢な下位互換性および上位互換性がサポートされます。matlab.serialization.SerializationContext は、MAT ファイル以外の宛先にシリアル化する場合に役立ちます。matlab.mixin.CustomElementSerialization では、シリアル化中の動的なプロパティの追加もサポートされていますが、これは loadobj および saveobj ではサポートされていません。

次の場合に loadobj および saveobj を使用します。

  • オブジェクトまたは struct 以外の型でデータをシリアル化する saveobj の既存の実装があり、loadobj 実装ではその特定の型からのデータの逆シリアル化のみを実行できる。

  • 構造体の入力のみを処理できる loadobj の既存の実装がある。matlab.mixin.CustomElementSerialization を使用するようにクラスを変更した場合、変更されたクラスがデータをオブジェクトとして保存すると、上位互換性が失われる可能性があります。これは、古いクラス定義の loadobj では一部のプロパティを読み込めない可能性があるからです。詳細については、Transitioning Serialization and Deserialization Processes to matlab.mixin.CustomElementSerializationを参照してください。

  • R2024b よりも古い MATLAB リリースを使用している。

参考

| | | |

トピック