2011-12-02 89 views
0

只需要一些帮助。将自定义对象从WCF服务传递到客户端

我已经写了一个WCF服务,它通过自定义对象列表(这些对象被标记为可序列化,所以他们通过很好)。

我需要在客户端写入什么才能够接收这些对象?我希望能够在没有本地定义类的情况下接收它们。我试图让他们为对象,但我得到的错误

无法隐式转换类型“System.Collections.Generic.List < TestService.Member>”到“System.Collections.Generic.List <对象>”

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

+1

什么是您的WCF接口是什么样子?您应该能够简单地更新服务参考。它会为你创建代理类。 – Amy

+0

只需 [OperationContract] List GetAllMembers(); – Coesy

回答

0

我认为你需要做两件事情:

1)创建从System.Collections.Generic.List

2继承了这个集合类的自定义类)装饰这个新类CollectionDataDataContract

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

对于类:

[CollectionDataContract] 
public class MemberCollection: List<Member> 

对于svcmap:

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

所以如果我这样做,客户会看到什么? – Coesy

+0

您应该能够将成员类和集合源代码链接到客户端项目,然后客户端项目将能够使用这些类的完整功能,而无需将业务逻辑或非序列化成员重新添加到WCF生成的类。 –

相关问题