0

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

现在,我在以前工作得很好的课程上遇到了以下错误。我尝试将代码回滚到工作版本,并仅更新 SL 项目中的服务引用,然后点击 build。

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

完整的错误文本在这里:

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 有关,从错误来看,这听起来不仅与我认为的有关。

自从我上次更新服务参考电话以来可能出了什么问题,我真的不知道从哪里开始寻找。

4

1 回答 1

1

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

于 2013-03-22T22:31:09.617 回答