2

私は、ポリモーフィックな継承関係で約 50 のクラスを持っています。XmlSerializer を使用してシリアル化しました。いくつかのクラスについて、IXmlSerializable を実装したいと思います。このクラスは基本クラスではなく、すべてのポリモーフィックな関係の基本クラスから直接派生します。

実装後、結果の XML には、WriteXML メソッドで記述した上記のクラスのタグのみが含まれます。他のクラスの情報はありません。非常に奇妙な行動!!!!

他のクラスの情報が維持されるように、この問題を解決する方法を教えてください。

4

2 に答える 2

1

私があなたが正しいと理解しているように-あなたのxmlにはあなたがWriteXML(現在のクラスの)暗黙的に追加するプロパティが含まれていますか?しかし、それは正しい振る舞いです。インターフェイスの説明の例のように、暗黙的にアイテムを追加する必要があります。

基本クラスのプロパティが必要な場合は、それらを追加します。このクラスから継承するクラスのプロパティが必要な場合は、リフレクションを介してそれらを取得してみてください。Reflectionを使用してプロパティ名を取得します。ただし、typeof(MyClass)使用する代わりに、プロパティ値を取得する方法を.GetType()確認してください

于 2012-06-12T18:38:23.347 に答える
0

同様の質問があちらこちらあります。

ReadXml(XmlReader reader)メソッドを次の行で終了します

reader.Read();

問題を解決する縫い目...

于 2015-07-31T08:57:02.127 に答える