我正在使用DataContract,并将preserveObjectReferences设置为false(默认值)。在任何环境下,它会导致循环引用并导致序列化异常吗?
如果是的话,你能不能用示例场景进行xplain吗?
由于
Lijo
答案 0 :(得分:0)
是的,绝对的,如果你关掉标志,这个简单的场景会导致序列化异常:
public static class X
{
public static A GlobA;
public static B GlobB;
static
{
GlobA = new A();
GlobB = new B();
GlobA.someB = GlobB;
GlobB.someA = GlobA;
}
}
[DataContract]
public class A
{
[DataMember]
public B someB = X.GlobA;
}
[DataContract]
public class B
{
[DataMember]
public A someA;
}
现在尝试序列化A ...的实例