我在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有关,从错误看起来不仅仅是我认为。
自上次更新服务引用调用以来可能出现什么问题,我真的不知道从哪里开始看。
答案 0 :(得分:1)
根据我的理解,更新的补丁修复了类似的问题。您可以尝试安装http://support.microsoft.com/kb/2750149(Windows 8)或http://support.microsoft.com/kb/2750147(其他操作系统)来查看是否能解决您的问题。