私はに格納されたクラスA
のオブジェクトのコレクションをシリアル化するのにBinaryFormatter
を使用しています。 [Serializable]
タグを追加し、A
(GetObjectData
と特別なコンストラクタの両方)にISerializable
を実装しました。デシリアライズすると、リストがデシリアライズされ、シリアル化されたものと同じ数の要素が含まれていることがわかります。ただし、これらの各要素はnull参照です。カスタム.NETシリアル化が機能していないようです
例外がスローされていないかどうかを確認しましたが、そうでないことを確認しています。私は、形式がA(SerializationInfo ^info, StreamingContext context)
の特別なコンストラクタが、逆シリアル化中に正しい回数呼び出されていることを確認しましたが、これらの再構築されたオブジェクトはではありません。逆シリアル化されたコレクションから参照されていません。
また、System::Collections::Generic::List<A^>^
をarray<A^>^
に置き換えましたが、私はまだ同じ結果を得ています。配列には正しい数の要素がありますが、各要素はnull参照です。
同様の問題を抱えている人は誰ですか?すべての手がかりは?
この種の質問には、壊れたコードが常に便利です。 –
GetObjectDataメソッドでは、あなたのリストでToArray()を呼び出していますか?私は過去の間違いを犯しました。私はシリアライゼーションプロセスを熟考して、この同じ振る舞いを得ようとしました。 – Kleinux
Kleinux、私はToArray()を呼び出すのではありませんが、それがうまくいくかどうかを一度試しました。そのような運はありません。 –