2012-06-12 51 views
2

我有大約50個多態繼承關係的類。我使用XmlSerializer來序列化它們。現在我想要實現IXmlSerializable的幾個類。所以我開始了一個類。這個類不是基類,而是直接從所有多態關係的基類中派生出來的。IXmlSerializable和XmlSerializer一起發佈

執行後,生成的XML包含的標籤僅限於上面使用WriteXML方法編寫的類。沒有其他課程的信息。非常奇怪的行爲!

所以請指導我解決這個問題,以便其他類信息能夠維護。

+0

你的意思是在基類中的信息不爲您的自定義子類自動序列化?或者其他非相關子類不再序列化數據? –

+0

你在尋找其他類的信息? – RredCat

+0

基本類和所有其他類的信息根本沒有序列化。結果XML僅包含用於實現IXmlSerializable的類的標記。 – user1451825

回答

1

據我瞭解你正確 - 你的xml包含你隱式添加的屬性(當前類的WriteXML)?但這是正確的行爲。您應該在接口描述中隱含添加項目,如example

如果您需要基類的屬性 - 添加它們。如果你需要從這個類繼承的類的屬性 - 嘗試通過反射來獲得它們。 Get Property Names using Reflection。但不是typeof(MyClass)使用.GetType()並檢查there如何獲取屬性值。

0

類似問題herethere

ReadXml(XmlReader reader)方法與線

reader.Read();

接縫解決了這個問題...