WCF递归收集数据合同无法正常工作

时间:2013-03-22 06:39:48

标签: c# visual-studio-2010 wcf silverlight visual-studio-2012

我在2010年有一个可行的解决方案,我已经搬到了2012年,只要我没有在Silverlight项目中修改我对WCF服务的引用,它就能正常工作。

现在我收到以前工作正常的课程的错误。我尝试将代码回滚到工作版本,只是更新SL项目中的服务引用,然后点击构建。

它之前构建,但之后不构建。请注意,一切都正常,并且该集合在服务器和客户端之间发送就好了。

完整的错误文字在这里:

Warning   134 Custom tool warning: Cannot import wsdl:portType
Detail: An exception was thrown while running a WSDL import extension:
     

System.ServiceModel.Description.DataContractSerializerMessageContractImporter       错误:类型“MyAssembly.ResultTreeDto”是一个不受支持的递归收集数据协定。考虑修改   要删除的集合'MyAssembly.ResultTreeDto'的定义   引用自己。

任何帮助非常感谢。以防万一:类可以被认为是递归的,这里有一个示例代码:

 public class ResultTreeDto 
    {

        public List<ResultTreeDto> Leafs { get; set; }
        .....
老实说,我很震惊。点击此更新服务引用按钮会导致太多问题。

我不确定问题是否仅与SL有关,从错误看起来不仅仅是我认为。

自上次更新服务引用调用以来可能出现什么问题,我真的不知道从哪里开始看。

1 个答案:

答案 0 :(得分:1)

根据我的理解,更新的补丁修复了类似的问题。您可以尝试安装http://support.microsoft.com/kb/2750149(Windows 8)或http://support.microsoft.com/kb/2750147(其他操作系统)来查看是否能解决您的问题。