序列化列表,其对象具有List的成员对象

时间:2011-06-20 13:59:52

标签: c# serialization

我想问一下,我可以序列化这样的事情:

class A
{
public A a;
}

A a1 = new A();
A a2 = new A();

a1.a = a2;
a2.a = a1;

List<A> aList = new List<A>(){a1,a2};

我想序列化aList,在反序列化之后做a1.a == a2和a2.a == a1 ??

1 个答案:

答案 0 :(得分:1)

它被称为循环引用(http://en.wikipedia.org/wiki/Circular_reference),一些序列化器允许这样做。如果序列化器就地序列化对象,则序列化结果将具有无限长度。

序列化程序必须通过在序列化期间保留引用表来序列化对象的引用,而不是就地内容的对象内容。