我似乎无法正常工作,这是我的(精简版)代码:-
[XmlRoot("report")]
public class Report
{
[XmlArray("sections"), XmlArrayItem("section")]
public List<Section> Sections;
}
public class Section
{
public Report Report;
}
我错过了什么吗?
我似乎无法正常工作,这是我的(精简版)代码:-
[XmlRoot("report")]
public class Report
{
[XmlArray("sections"), XmlArrayItem("section")]
public List<Section> Sections;
}
public class Section
{
public Report Report;
}
我错过了什么吗?
您的对象包含XmlSerializer类不支持的循环引用。您可以改为查看支持此类场景的DataContractSerializer 。
你应该确保你知道你希望这些类如何序列化和反序列化。编写您想要的 XML 作为结果,并弄清楚您希望对象如何成为 XML,反之亦然。这不是一件容易的事。
这是我的解决方案。它可能没有你想象的那么优雅:
public class Report
{
//...
void PostLoad()
{
foreach(Section s in Sections)
{
s.Report = this;
}
}
public static Report Load(string filename)
{
// Load using an XmlSerializer
Report report = ...;
report.PostLoad();
return report;
}
}