カスタムシリアル化中に、各オブジェクトのgetObjectDataメソッドをどのくらいの頻度で呼び出す必要がありますか?

StackOverflow https://stackoverflow.com/questions/3865297

質問

カスタムシリアル化を使用してアプリのデータをシリアル化します。つまり、保存する各クラスには [Serializable] 属性と道具 ISerializable. 。シリアル化されているオブジェクトグラフは、オブジェクト/クラス間の相互参照が多数あることと合理的に複雑です。シリアル化 作品, 、しかし、それはかなり遅いです。 :(

関連する各クラスにブレークポイントを置くことにより GetObjectData 方法、私はオブジェクトを持っているよりも多くのヒットを得ていることがわかりました。

私は混乱しています - シリアル化フレームワークについての私の理解は、オブジェクトグラフに複数の参照が含まれていても、各オブジェクトを1回だけ保存することでした。私はこれが各オブジェクトを意味すると仮定しました GetObjectData メソッドは、保存中に1回だけ呼び出される必要があります。私が間違っている?

もしそうなら、私のクラスへの呼び出しの数を減らすためにこのアプローチで私ができることはありますか GetObjectData 方法?

ありがとう。

役に立ちましたか?

解決

MSDNドキュメント オブジェクトごとのインスタンスごとに1コールのみを保証しないでください。

さまざまなフォーマッタでこれを試しましたか?コメントがあります ここ これを改善するために選択された作業が行われていたという効果に。具体的にはIndigo(別名WCF)。

この方法は、シリアル化中にオブジェクトインスタンスごとに1回のみ呼び出されることを保証するものではありません。したがって、この方法は、呼び出される回数に関係なく、その動作が同じになるように実装する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top