当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《为什么WCF像我期待的那样返回myObject[]而不是List<T>?》经验,为你挑选了3个好方法。

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

WCFClient myClient = new WCFClient();

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

我正在做的就是将这个集合和绑定到网格.分配我收到的收藏品的最佳对象是什么?



1> Stever B..:

您可以通过在添加引用时单击高级按钮来指定要使用通用列表而不是数组,也可以右键单击服务引用并选择configure以在适当位置更改它.

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



2> Andrew Hare..:

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

这是你如何做到的List:

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


这是一个很好的解决方案,但不能处理“我正在将C#与C#一起使用”的一般情况,并且不需要额外的步骤,即必须始终使用我正在制作和部署的大量服务手动解析常见的集合类型。 '

3> Tad Donaghe..:

Stever B是正确的.WCF尝试很难不与.NET耦合.您可能希望允许Java客户端连接到您的组件.数组是可互操作的.通用.NET列表不是.

但是,非常欢迎您创建自己的代理类,将数组转换回List或您想要的任何其他内容.手动创建自己的代理的好处在于,您可以完全控制他们的工作.

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有