0

オブジェクトを永続化するために DataContractSerializer を使用しています。ほとんどのクラスには [DataContract] 属性がありますが、1 つ (理由は不明) [Serializable] があります。このクラスのプロパティには [DataMember] 属性があります。これまでのところ、問題なく動作しています。

最近、新しいプロパティを追加しようとしましたが、デシリアライズ時にエラーが発生しました。エラー メッセージは次のようなものです。

[DataContract] 属性を追加しようとしましたが、「ID 15 のデシリアライズされたオブジェクトが見つかりません」のような別のエラーが発生しました。クラスがまったく逆シリアル化されていないようです。

私が間違っていることと、既存のオブジェクトを逆シリアル化するために何ができるかを誰かが説明できますか?

ありがとう。

4

1 に答える 1

0

永続化されたオブジェクトが古いクラス構造を使用していて、追加したプロパティが必須のプロパティであり、逆シリアル化が失敗した可能性がありますか?

また、Serializable プロパティが存在し、その理由がわからない場合は、他のコードがこのクラスを使用してシリアライズしていないかどうかを確認することをお勧めします。使用している場合は、追加する新しいプロパティによって破損する可能性があります。 :)

お役に立てれば!

于 2012-09-10T07:34:19.513 に答える