IndexOutOfRangeException序列化实体对象时

时间:2015-07-07 14:15:44

标签: c# entity-framework wcf serialization

我正在使用WCF和Entity Framework。我有一个Web服务,它返回一个指向某个实体对象数组的对象。当Silverlight客户端调用该方法时,我得到一个'NotFound'异常。

我探索了WCF日志和事件日志,发现错误是序列化对象时出现的IndexOutOfRangeException。有一个很大的堆栈痕迹,当我分析以下引起我的注意。在此之前,我的模型的片段(我翻译名称以便于理解):

Entity BaseItem:
   (Some properties)
   DetailItem[] Details;

Entity DetailItem:
   (Some properties)
   RelatedItem ExtraInfo;

Entity RelatedItem:
   (Some properties)

然后我有这个callstack:

   (...)
   in WriteArrayOfDetailItemToXml(...)
   (...)
   in WriteBaseItemToXml(...)
   (...)
   in WriteDetailItemToXml(...)
   (...)
   in WriteArrayOfDetailItemToXml(...)
   (...)
   in WriteRelatedItemToXml(...)
   (...)
   in WriteDetailItemToXml(...)
   (...)
   ib WriteArrayOfDetailItemToXml(...)
   (...)
   em WriteBaseItemToXml(...)
   em System.Runtime.Serialization.ClassDataContract.WriteXmlValue(...)

在我看来,序列化程序进入了一个递归循环,试图编写所有属性,包括互惠属性(我不知道这是否是名称,我的意思是框架在关系的两边生成的属性)。

有没有人知道可能发生的事情以及导致此错误的原因是什么?

0 个答案:

没有答案