C#에서 XML을 실시 할 때 부모 객체에 대한 참조를 어떻게 참조 할 수 있습니까?
-
03-07-2019 - |
문제
나는 이것을 작동시킬 수없는 것 같다. 여기 내 (박탈 된) 코드가있다 : -
[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;
}
}
제휴하지 않습니다 StackOverflow