1

文字列配列のリストを返す WCF サービスがあります。

[OperationContract]
List<string[]> ArticleSearch(int SearchField, string SearchValueMin,
           string SearchValueMax, IEnumerable<string> Fields);

System.Arrayリストのデシリアライゼーションを からに変更できることは知っていますが、戻り値の型として(ジャグ配列) または(文字列のリストのリスト)System.Collections.Generic.Listを取得するため、役に立ちません。が必要です。string[][]List<List<string>>List<string[]>

私の質問は; これをどこかで設定することは可能ですか、Reference.csそれとも更新のたびに手動でファイルを変更する必要がありますか?

4

2 に答える 2

5

通常、コレクション型は配列として返されますが、以下のようにサービス参照を構成することでこの動作を変更できます。

サービス参照を選択し、Configure Service Reference ...に移動します。

[コレクション タイプ] ドロップダウンで、タイプを選択しますSystem.Collections.Generic.List

ここに画像の説明を入力

上記の変更後の返品タイプList<string[]>があるため、受け取りますList<List<string>>

したがって、配列のリストまたは配列のリストを 1 にすることはできません。

Corakがコメントしたように、要件に応じて、配列をリストに、またはリストを配列に変換できます。

于 2013-09-05T06:14:44.367 に答える
0

最終的に、List プロパティを使用して [DataContract] クラスを作成し、[OperationContract] がそのオブジェクトを返すようにすることができます。その時点で、任意の .NET プロジェクトから WCF サービスにアタッチすると、プロパティが List として表示されます。

しかし、クライアント側でリストを受け取るだけの場合、これは実際には良い方法ではありません。投稿への @Corak コメントは、これを行うための最良の方法です。他の言語もサービスを読み取ることができることを忘れないでください.NETはXMLを既知のオブジェクトに「ロード可能」であると解釈しているだけです.

于 2013-09-05T12:18:04.050 に答える