Silverlight在对象图中使用循环序列化对象
将对象发送到WCF服务时,序列化对象时遇到问题。我的课是这样的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中序列化对象时,仍然会出现错误 虽然我可以用
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
这里的教训是,有用的魔法精灵尘埃只需要在移植后进行。对不起,这不是你想要的答案