WCF - 由于循环引用而导致的序列化异常

时间:2010-06-06 15:34:34

标签: wcf

我正在使用DataContract,并将preserveObjectReferences设置为false(默认值)。在任何环境下,它会导致循环引用并导致序列化异常吗?

如果是的话,你能不能用示例场景进行xplain吗?

由于

Lijo

1 个答案:

答案 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 ...的实例