0

在我的 WCF 服务合同中,我声明了一个返回 List 的异步方法,但是当在我的客户端中我收到来自该方法的返回时,我收到一个数组。我的合同如下:

[OperationContract(AsyncPattern = true)]
IAsyncResult BeginGetUsers(Paramusers paramUserParameters, AsyncCallback callback, object state);
List<Users> EndGetUsers(IAsyncResult result);

在我的客户中,我有以下代码:

Task<List<Users>> task = Task<List<Users>>.Factory.FromAsync(_proxy.Proxy.BeginGetUsers, _proxy.Proxy.EndGetUsers, myParameters,  null);
List<Users> myUsers = await task;

在客户端,我在 FromAsync 方法的第二个参数中收到错误,因为它说 EndGetUsers 方法返回一个数组,而不是一个列表。

我尝试使用一组用户并且工作正常,但我想从异步方法接收列表,而不是数组。可能吗?

谢谢。戴姆洛克。

4

1 回答 1

7

创建客户端代理时,指定您希望将集合表示为列表而不是数组 - 使用“添加服务引用”对话框时,选择“高级”按钮,然后System.Collections.Generic.List在集合类型下拉列表中进行选择。

如果使用svcutil,则可以使用/collectionType(或/ct)参数来指定要使用的集合类型:

svcutil http://the.service.com/service.svc /ct:System.Collections.Generic.List`1
于 2012-05-01T17:50:28.323 回答