使用交叉引用对XmlSerialize类进行序列化的最佳方法是什么?
在下面的示例中,多个B类可以指向同一个A对象。如何在不在xml中编写多个A的情况下序列化C?我的课程很大,所以我更喜欢使用自动序列化而不是编写完整的
public class A{
int id;
}
public class B{
int id;
A a;
}
public class Root{
B[] bArray;
}
答案 0 :(得分:1)
XmlSerializer无法处理交叉引用。尝试使用DataContractSerializer和PreserveObjectReferences = true。
答案 1 :(得分: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;
}