我有一个基类,我的所有模型类都从该基类继承 - 实体。实体用
装饰[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时,才会发生服务器到客户端错误。如果列表为空,则没有问题。
答案 0 :(得分:0)
启用http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datacontractserializer.preserveobjectreferences.aspx标志应解决此问题。 (该标志也存在于DataContractSerializerOperationBehavior上 - 在配置中,通过DataContract属性,以及您继承的任何自定义行为)