0

WCFサービスコントラクトで、リストを返すasynメソッドを宣言しましたが、クライアントでメソッドからの戻り値を受け取ると、配列を受け取ります。私の契約は次のとおりです。

[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メソッドの2番目のパラメーターでエラーが発生します。これは、EndGetUsersメソッドがリストではなく配列を返すことを示しているためです。

ユーザーの配列を使用しようとしていますが、正常に動作しますが、配列ではなく、asyncメソッドからリストを受け取りたいと思います。出来ますか?

ありがとう。ダイムロック。

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 に答える