Silverlight在对象图中使用循环序列化对象

Silverlight在对象图中使用循环序列化对象,silverlight,wcf,silverlight-4.0,datacontractserializer,Silverlight,Wcf,Silverlight 4.0,Datacontractserializer,将对象发送到WCF服务时,序列化对象时遇到问题。我的课是这样的 public class Foo { public Bar Bar { get; set; } } public class Bar { public Foo Bar { get; set; } } 这会导致对象图中出现循环。我在服务器端通过使用PreserveReferencesOperationBehavior解决了这个问题。但是,当我尝试在Silverlight中序列化对象时,仍然会出现错误 虽然我可以用

将对象发送到WCF服务时,序列化对象时遇到问题。我的课是这样的

public class Foo
{
     public Bar Bar { get; set; }
}

public class Bar
{
    public Foo Bar { get; set; }
}
这会导致对象图中出现循环。我在服务器端通过使用
PreserveReferencesOperationBehavior
解决了这个问题。但是,当我尝试在Silverlight中序列化对象时,仍然会出现错误

虽然我可以用
[DataContract(IsReference=true)]
标记我的对象,但我不想使用这种方法,因为我有大量的类,其中许多类有100多个属性,我不想为每个属性添加
[DataMember]
属性

有没有其他方法告诉Silverlight保留引用


如果有必要的话,我将首先使用EntityFramework 4和代码。

序列化程序的推断DataContract行为将有助于实现简单的DTO场景。如果要“正确”地执行此操作,应使用
DataContract
DataMember
属性

当你发现除了最简单的场景之外,你还需要做一些事情。处理循环引用的正确且唯一的方法是使用
IsReference

这里的教训是,有用的魔法精灵尘埃只需要在移植后进行。对不起,这不是你想要的答案