我在 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 有关,从错误来看,这听起来不仅与我认为的有关。
自从我上次更新服务参考电话以来可能出了什么问题,我真的不知道从哪里开始寻找。