シリアル化プロセスをカスタマイズする状況
クラスの下位互換性と上位互換性をサポートすることが、オブジェクトのシリアル化 (保存) と逆シリアル化 (読み込み) のプロセスをカスタマイズする主な理由です。クラス定義を変更した場合、シリアル化プロセスをカスタマイズします。これには以下を含みますが、これらに限定されません。
プロパティの名前の変更
プロパティの追加または削除
プロパティの検証の変更
シリアル化プロセスの変更方法
MATLAB® には、シリアル化プロセスをカスタマイズする次の 2 つの方法が含まれています。
matlab.mixin.CustomElementSerializationから継承する。 (R2024b 以降)
シリアル化をカスタマイズするための推奨プロセスは、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 リリースを使用している。
参考
matlab.mixin.CustomElementSerialization | matlab.serialization.ElementSerializationContent | matlab.serialization.SerializationContext | loadobj | saveobj