Веб-сервис (asmx) возвращает массив, а не список

У меня есть веб-метод десериализации, который возвращает список данных в веб-сервисе (asmx), и я вызываю метод со стороны клиента. Однако метод дает мне массив, а не список. Я понимаю, что это из-за ответа SOAP, который возвращает формат xml (или что-то в этом роде ..)
Можно ли вернуть список? Если тогда, подскажите, пожалуйста, идею.
Если нет, научите меня альтернативному способу. (Я не должен использовать массив ...)

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);

person Adrian    schedule 02.10.2013    source источник
comment
ASMX - это устаревшая технология, и ее не следует использовать для новых разработок. WCF следует использовать для всех новых разработок клиентов и серверов веб-служб. Один намек: Microsoft удалила форум ASMX в MSDN.   -  person John Saunders    schedule 03.10.2013
comment
Какой технологии мне следует придерживаться вместо использования ASMX? MVC?   -  person Adrian    schedule 03.10.2013
comment
WCF является заменой ASMX (и делает гораздо больше).   -  person John Saunders    schedule 03.10.2013


Ответы (1)


Веб-службы не возвращают массивы и не возвращают списки. Они возвращают XML. XML, который они возвращают, интерпретируется клиентским кодом как список, массив или что-то еще.

Если вы используете эту службу с помощью «Добавить ссылку на службу», у вас будет выбор, как обрабатывать повторяющиеся элементы в XML. Вы можете выбрать из списка, массива или нескольких других вариантов.

person John Saunders    schedule 02.10.2013
comment
Спасибо, Джон! Итак, вы говорите, что я смогу преобразовать XML в список, массив и т. Д.? - person Adrian; 03.10.2013
comment
Я вижу, что client.DeserializaJson (stream) возвращает тип Client_Projet_Name.WebService.ActivityFlatTableColumns [], и насколько я понимаю, это тип массива? Я думаю, что заблудился. Не могли бы вы привести мне какой-нибудь пример, который я могу придумать? - person Adrian; 03.10.2013
comment
Прочтите мое сообщение в блоге Как использовать веб-сервис и посмотрите, поможет ли он вам. Кроме того, Основы: как работают веб-службы напрямую затрагивает вопрос XML. - person John Saunders; 03.10.2013