我有一个基类,我的所有模型类都从该基类继承 - 实体 . 实体装饰着
[DataContract(IsReference = true)]
这适用于从客户端到服务器(保存操作) . 但是我在从服务器到客户端(get操作)添加IsReference之前遇到了同样的错误 . 有任何想法吗?
编辑:
错误是:
尝试序列化参数http://tempuri.org/:GetResult时出错 . InnerException消息是'类型的对象图'Current.Entities.LazyList`1 [[Current.Entities.SubPart,Current.Entities,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null]]'包含循环,不能是如果参考跟踪被禁用,则序列化 . 有关更多详细信息,请参阅InnerException .
编辑:
拍了,我回答了这个,但后来删除了它 . 由于我在项目中所做的其他事情,我以为我修了它 . 我错了,这仍然是一个问题 . 我有更多的信息 - 只有当对象图中的实体包含非空的子项LazyList时才会发生服务器到客户端错误 . 如果列表为空,则没有问题 .
1 回答
启用http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datacontractserializer.preserveobjectreferences.aspx标志应解决此问题 . (该标志也存在于DataContractSerializerOperationBehavior上 - 在配置中,通过DataContract属性,以及您继承的任何自定义行为)