0

webservice(asmx) のデータのリストを返す逆シリアル化 webmethod があり、クライアント側からメソッドを呼び出しています。ただし、メソッドはリストではなく配列を提供しています。xml形式(またはそのようなもの)を返すSOAP応答が原因であると理解しています..
リストを返すことは可能ですか?もしよろしければ、アイデアを教えてください。
そうでない場合は、別の方法を教えてください。(私は配列を使うべきではありません...)

service.asmx.cs

[WebMethod]
public IList<Person> DeserializeJson(string value)
{
        JavaScriptSerializer js = new JavaScriptSerializer();
        IList<Person> tableData = js.Deserialize<IList<Person>>(value);

        return tableData;
 }

Client.aspx.cs (WebService は私のサービス参照です)

WebService.Service1SoapClient client = new WebService.Service1SoapClient();
string stream = client.CreateJsonFromDatabase();
List<WebService.Person> tableData = client.DeserializeJson(stream);
4

1 に答える 1

0

Web サービスは配列を返さず、リストも返しません。XML を返します。それらが返す XML は、クライアント コードによってリスト、配列などとして解釈されます。

「サービス参照の追加」を使用してこのサービスを使用する場合、XML で繰り返される要素を処理する方法を選択できます。リスト、配列、またはその他のいくつかの選択肢から選択できます。

于 2013-10-02T21:54:18.907 に答える