WCF:在异步合同中我返回List <T>但是我在客户端收到一个数组

Álv*_*cía 0 arrays wcf asynchronous list

在我的WCF服务合同中,我已经声明了一个返回List的asyn方法,但是当我在我的客户端收到该方法的返回时,我收到一个数组.我的合同如下:

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

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

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

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

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

谢谢.Daimroc.

car*_*ira 7

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

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

svcutil http://the.service.com/service.svc /ct:System.Collections.Generic.List`1
Run Code Online (Sandbox Code Playgroud)