1

データベースに一連の xml シリアル化オブジェクトがあります。

しかし、関連するクラスをリファクタリングして名前を変更したため、データベースからのデシリアライズは困難です。

名前を変更したクラスの上に用語を追加することで問題が解決すると思いました[XmlRoot("DB_Class_Name")]が、そうではないようです。

クラスの名前を古いクラス名に変更したり、特別な逆シリアル化関数を作成したりせずに[XmlRoot]、などのラベルを使用して問題を解決する方法はありますか?[XmlElement]

また、 xmldeserializaiton と次のようなラベルを使用するときに内部で何が起こっているかについての良い情報源はあります[XmlRoot]か?

4

1 に答える 1

3

まず、[XmlRoot]etc. はラベルではなく、属性です。

次に、[XmlRoot]そのクラスがドキュメントのルート要素として使用されている場合にのみ、クラスに影響します。そのクラスのインスタンスが子または他の子孫として使用される場合、影響はありません。

[XmlType]クラス、またはクラス[XmlElement]の型のプロパティで使用します。

于 2011-02-16T20:30:07.613 に答える