C# 序列化相互引用的两个对象

C# 序列化相互引用的两个对象,c#,xml,serialization,C#,Xml,Serialization,我目前第一次使用C进行序列化,并且使用XmlSerializer类,但是我遇到了一个问题。我有两个类相互引用,这会在序列化时导致错误 本项目是一个绘制类图的程序。每个类都有一个指向或来自它的箭头列表: public List<UMLArrow> arrowlist; 我想,当我尝试序列化它时,由于这个问题,我进入了一个无限循环: <UMLClass> <List<UMLArrow> > <UMLClass>

我目前第一次使用C进行序列化,并且使用XmlSerializer类,但是我遇到了一个问题。我有两个类相互引用,这会在序列化时导致错误

本项目是一个绘制类图的程序。每个类都有一个指向或来自它的箭头列表:

public List<UMLArrow> arrowlist;
我想,当我尝试序列化它时,由于这个问题,我进入了一个无限循环:

<UMLClass>
    <List<UMLArrow> >
        <UMLClass>
            <List<UMLArrow> >
                ...
            <List<UMLArrow> >
        </UMLClass>
    </List<UMLArrow>>
<UMLClass>

有人知道这个问题的解决方案吗?

我想您已经实现了自己的序列化方法。要实现循环依赖项的序列化,您需要做的是向每个对象的表示添加一个id,并跟踪序列化的对象。序列化对象时,检查对象是否已序列化。如果是,您只需使用对象id序列化对象引用。

我想您已经实现了自己的序列化方法。要实现循环依赖项的序列化,您需要做的是向每个对象的表示添加一个id,并跟踪序列化的对象。序列化对象时,检查对象是否已序列化。如果是,您只需使用对象id序列化对对象的引用。

XmlSerializer不支持循环引用。您需要使用一个序列化程序,它可以。如果用FieldObjeTrErristReals= TRUE或NETDATACONTRACTSerialServer初始化它支持DATACONTRACTRONTALIGER,那么您应该考虑更改使用的序列化器。

< P> XMLSerialisher不支持循环引用。您需要使用一个序列化程序,它可以。如果用FieldObjeTrErristReals= true来初始化DATACONTRACTRONTALIGER或NETDATACONTRACTRONTROLALIZER确实支持它,所以您应该考虑更改您使用的序列化器。

我建议您看一下这个线程= >我建议您看一下这个线程= >忘记提到我使用XMLSerialZER类,更新主要帖子。有什么方法可以表示这个类的循环依赖关系吗?对不起,我不知道XmlSerializer。检查文档。忘了提到我使用XmlSerializer类,main post updated。有什么方法可以表示这个类的循环依赖关系吗?对不起,我不知道XmlSerializer。检查文档。
<UMLClass>
    <List<UMLArrow> >
        <UMLClass>
            <List<UMLArrow> >
                ...
            <List<UMLArrow> >
        </UMLClass>
    </List<UMLArrow>>
<UMLClass>