.NETXmlSerializer
クラスを使用してXML文字列をStringWriterに書き込みます(WCFやJSON、またはサービスに関連するその他のものではありません)。
There was an error generating the XML document
電話をかけた後の例外が発生した理由を何時間も調べた後XmlSerializer.Serialize()
、私はついに循環参照が含まれていることを発見しました。私のクラスは次のようになります。
class Table
{
public List<Columns> Columns {get; set;}
}
class Column
{
public Table Table {get; set;}
}
ご覧のとおり、テーブルには列のコレクションがありますが、そのコレクションの各列には、その親テーブルへの参照も含まれています。
シリアル化中にプロパティを無視したくありません。逆シリアル化できるようにし、参照を再構築する必要がないようにしたい。私がWCFを使用していたとき、XMLのサイズを縮小するためにネットワーク全体で参照を保持する方法がありました。確かに、.NETは、XML自体の整合性を損なうことなく、循環関係をXMLにシリアル化する同様の方法を提供します。