我从我的WCF方法返回一个列表。在我的客户机代码中,它的返回类型显示为MyObject[]。我必须使用MyObject[]、IList或IEnumerable...
WCFClient myClient = new WCFClient();
MyObject[] list = myClient.GetMyStuff();
or
IList<MyObject> list = myClient.GetMyStuff();
or
IEnumerable<MyObject> list = myClient.GetMyStuff();
我要做的就是把这个集合绑定到一个网格上。给我返回的集合赋值最好的对象是什么?
发布于 2009-01-29 21:03:55
您可以通过在添加引用时单击高级按钮来指定要使用通用列表而不是数组,也可以右键单击服务引用并选择configure对其进行适当的更改。
原因是WCF将泛型列表序列化为数组,以便通过网络发送。配置只是告诉svcutil创建一个代理,将它们转换回一个通用列表,以方便您使用。
发布于 2009-01-29 21:00:14
当您使用svcutil.exe
创建客户端代码时,您需要告诉它如何解析某些对它不可用的引用。
这就是如何为List<T>
做这件事
svcutil /o:YourService.cs /ct:System.Collections.Generic.List`1 http://example.com/mex
发布于 2009-01-29 21:16:16
Stever B是正确的。你可能希望允许一个.NET客户端连接到你的组件。数组是可互操作的。通用.NET列表则不是。
但是,非常欢迎您创建自己的代理类,它将把数组转换回列表或任何您想要的东西。手动创建自己的代理的好处是,您可以完全控制它们所做的事情。
https://stackoverflow.com/questions/493376
复制相似问题