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