Да, безусловно, если вы отключите флаг, этот простой сценарий приведет к исключению сериализации:
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 ...