3

大きなオブジェクトをシリアル化しようとしていますが、これは数年ではないにしても数か月間機能しており、最近のリビジョンにより古いファイルでこのバグが発生しています。

それらを再シリアル化するとTypeLoadExceptionHolder、「 」としてマークされていないというメッセージが表示されSerializableます。シリアル化呼び出しの直前にブレークポイントを設定しましたが、そのタイプの参照が見つからないようです。シリアル化しようとしているオブジェクトを「スキャン」して、への参照がどこにあるかを確認する方法TypeLoadExceptionHolderはありますか?

4

1 に答える 1

3

このタイプの例外をトリガーできるシナリオは多数あります。いくつかのより一般的なものはherehereです。

(上記のリンクから要約) 一言で言えば、型をシリアル化できない場合、バイナリ シリアル化は例外をスローしません。代わりに、シリアル化できない型を TypeLoadExceptionHolder 型に置き換えます。十分に文書化されていないことに加えて、使用される理由はさらに少なくなります。

シリアル化しようとしているオブジェクトで何が変更されたのかを手動で把握するのに苦労している場合があります。具体的には、次を探します。

  • 名前空間が変更されます。
  • メンバー名変更。
  • メンバーのデータ型が変更されました。
于 2013-02-12T19:35:00.583 に答える