为什么WCF像我期待的那样返回myObject []而不是List <T>?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (23)

我从我的WCF方法返回一个List。在我的客户端代码中,返回类型显示为MyObject []。我必须使用MyObject []或IList或IEnumerable ...

WCFClient myClient = new WCFClient();

    MyObject[] list = myClient.GetMyStuff();
or
    IList<MyObject> list = myClient.GetMyStuff();
or
    IEnumerable<MyObject> list = myClient.GetMyStuff();

我所做的就是将这个集合绑定到一个网格。什么是分配我返回的集合的最佳对象?

提问于
用户回答回答于

可以通过在添加引用时单击高级按钮来指定要使用通用列表而不是阵列,或者可以右键单击服务引用并选择“配置”以将其更改。

原因是WCF将通用列表序列化为数组以通过线路发送。该配置只是告诉svcutil创建一个代理,将其转换回通用列表,以方便使用。

用户回答回答于

当使用svcutil.exe创建客户端代码时,需要告诉它如何解析某些不可用的引用。

这是你如何做的List<T>

svcutil /o:YourService.cs /ct:System.Collections.Generic.List`1 http://example.com/mex

扫码关注云+社区