C#에서 XML을 실시 할 때 부모 객체에 대한 참조를 어떻게 참조 할 수 있습니까?

StackOverflow https://stackoverflow.com/questions/600597

문제

나는 이것을 작동시킬 수없는 것 같다. 여기 내 (박탈 된) 코드가있다 : -

[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;
  }
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top