Compact Framework の普及レイヤーを実装しました ( BinaryFormatter
-like シリアライザーを含む)。必要に応じて、ラムダやイテレータなどの結果としてコンパイラが生成したクラスをシリアル化できるようにしたいと考えています。シリアライズ可能なオブジェクトのイベントに追加され、閉じられたすべての変数がシリアライズ可能である場合、結果のオブジェクト グラフは依然として完全にシリアライズ可能です。
これらのクラスのインスタンスが、シリアル化されたバイナリのビルドとまったく同じビルドによってのみ逆シリアル化できる場合は許容されます。アプリケーションが予期せず終了した場合、普及層は主に耐久性を提供するためのものです (電源障害とデバイスの再起動は別の可能性です)。であり、シリアル化されたデータ ストリームは、前方互換性も後方互換性も期待されていません。さらに言えば、同じソース コードの 2 つのコンパイル間での互換性も期待されていません。結果のすべては、次にサーバーと対話するときにサーバーに送信されます。 、切断中は更新しません。
この限られたコンテキストで、フォーマッタがコンパイラによって生成されたこれらのクラスをシリアル化可能であるかのように扱うことは合理的ですか? 私が見る唯一の代替手段は、シリアル化可能性が懸念されるあらゆる場所で、そうでなければコンパイラがサポートするパターンを手動で実装することです。結果は、過度に冗長なものからほとんど読めないものまでさまざまです。