DeHLを使用してDelphiでXMLとクラスをセリライズし、クラスにプロパティを追加してXMLファイルを逆シリアル化しようとしています。このエラーが発生しました:'逆シリアル化«\TApp \ FObject\test»が失敗しました。シリアライザーは、それが欠落しているか、他のエンティティが現在読み取られていると報告しました!」
私はこの問題をよく理解していますが、エラーの代わりにデフォルト値を設定する方法はありますか?
DeHLを使用してDelphiでXMLとクラスをセリライズし、クラスにプロパティを追加してXMLファイルを逆シリアル化しようとしています。このエラーが発生しました:'逆シリアル化«\TApp \ FObject\test»が失敗しました。シリアライザーは、それが欠落しているか、他のエンティティが現在読み取られていると報告しました!」
私はこの問題をよく理解していますが、エラーの代わりにデフォルト値を設定する方法はありますか?
アレックスは私にこれに答えます:
[XmlNullable] で「part2」フィールドに注釈を付けることで、できるはずです。これにより、XML ノードがない場合、「part2」フィールドを NIL に設定するように XML シリアライザーに指示されます。
これは可能ですが、推奨されないことに注意してください。逆シリアル化されたコンテンツは、元の型にシリアル化する必要があります。そうしないと、「悪いこと」が発生する可能性があります。
私はずっと前に彼のサイトでこの質問をしましたが、私がこの質問をした場所を見つけることができませんでした: http://alex.ciobanu.org/?p=285#comments