我想问一下,我可以序列化这样的事情:
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 ??
答案 0 :(得分:1)
它被称为循环引用(http://en.wikipedia.org/wiki/Circular_reference),一些序列化器允许这样做。如果序列化器就地序列化对象,则序列化结果将具有无限长度。
序列化程序必须通过在序列化期间保留引用表来序列化对象的引用,而不是就地内容的对象内容。