C# 将自定义对象从WCF服务传递到客户端

C# 将自定义对象从WCF服务传递到客户端,c#,wcf,object,wsdl,C#,Wcf,Object,Wsdl,只是需要一些帮助 我已经编写了一个WCF服务,它通过一个自定义对象列表来传递这些对象被标记为可序列化的,因此它们可以很好地传递 我需要在客户机中编写什么才能接收这些对象?我希望能够在没有本地类定义的情况下接收它们。我试着把它们作为一个对象,但我得到了错误 无法将类型“System.Collections.Generic.List”隐式转换为“System.Collections.Generic.List” 希望这是足够的信息,任何指针都会有用。我认为您需要做几件事: 1为此集合类创建从Syste

只是需要一些帮助

我已经编写了一个WCF服务,它通过一个自定义对象列表来传递这些对象被标记为可序列化的,因此它们可以很好地传递

我需要在客户机中编写什么才能接收这些对象?我希望能够在没有本地类定义的情况下接收它们。我试着把它们作为一个对象,但我得到了错误

无法将类型“System.Collections.Generic.List”隐式转换为“System.Collections.Generic.List”


希望这是足够的信息,任何指针都会有用。

我认为您需要做几件事:

1为此集合类创建从System.Collections.Generic.List继承的自定义类

2用CollectionDataContract装饰这个新类

3在客户端中,编辑reference.svcmap并将此新项目的条目添加到CollectionMappings部分。要查找svcmap,请显示项目中的所有文件并展开WCF服务引用

对于班级:

[CollectionDataContract]
public class MemberCollection: List<Member>
对于svcmap:

  <CollectionMapping TypeName="MyNameSpace.MemberCollection" Category="List" />

您的WCF接口是什么样子的?您应该能够简单地更新服务引用。它将为您创建代理类;因此,如果我这样做,客户端将看到什么?您应该能够将成员类和集合源代码链接到客户端项目,然后客户端项目将能够使用这些类的完整功能,而无需将业务逻辑或非序列化成员重新添加到WCF生成的类中。