2015-06-09 60 views
0

使用交叉引用來序列化XmlSerialize類的最佳方式是什麼?使用XmlSerialize序列化多個引用對象

在下面的例子中,多個B類可以指向同一個A對象。如何在不在xml中寫入多個A的情況下序列化C?我的課程很大,所以我更喜歡使用自動序列化,而不是編寫一個完整的課程。

public class A{ 
    int id; 
} 

public class B{ 
    int id; 
    A a; 
} 

public class Root{ 
    B[] bArray; 
} 

回答

0

應該沒有什麼區別,類是循環的。

[XmlRoot("A")] 
    public class A 
    { 
     [XmlElement("id")] 
     int id; 
    } 
    [XmlRoot("B")] 
    public class B 
    { 
     [XmlElement("id")] 
     int id; 
     [XmlElement("A")] 
     A a; 
    } 
    [XmlRoot("Root")] 
    public class Root 
    { 
     [XmlElement("B")] 
     List<B> bArray; 
    } 
​ 
1

XmlSerializer無法處理交叉引用。嘗試使用帶有PreserveObjectReferences = true的DataContractSerializer。

相關問題