DataContract IsReference只能以一种方式工作?

时间:2011-02-20 20:58:41

标签: silverlight wcf serialization

我有一个基类,我的所有模型类都从该基类继承 - 实体。实体用

装饰
[DataContract(IsReference = true)]

这适用于从客户端到服务器(保存操作)。但是,当我从服务器到客户端(get操作)添加IsReference之前,我现在遇到了同样的错误。有什么想法吗?

编辑:

错误是:

  

尝试时出错   序列化参数   http://tempuri.org/:GetResult。该   InnerException消息是'对象   类型图   “Current.Entities.LazyList`1 [[Current.Entities.SubPart,   Current.Entities,版本= 1.0.0.0,   文化=中性,   PublicKeyToken = null]]'包含循环   并且如果引用则无法序列化   跟踪被禁用。'请参阅   InnerException以获取更多详细信息。

编辑:

拍摄,我回答了这个,但后来删除了它。由于我在项目中所做的其他事情,我以为我修了它。我错了,这仍然是一个问题。我有更多的信息 - 只有当对象图中的实体包含非空的子项LazyList时,才会发生服务器到客户端错误。如果列表为空,则没有问题。

1 个答案:

答案 0 :(得分:0)

启用http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datacontractserializer.preserveobjectreferences.aspx标志应解决此问题。 (该标志也存在于DataContractSerializerOperationBehavior上 - 在配置中,通过DataContract属性,以及您继承的任何自定义行为)