Метод веб-службы Не удается вернуть DataTable? - PullRequest
0 голосов
/ 25 мая 2011

Вот метод веб-службы:

[WebMethod]
[SoapHeader("m_Token", Direction = SoapHeaderDirection.InOut)]
public DataTable GetUserProfile()

Вот строка кода, которую я использую для вызова этого метода:

DataTable DT = (DataTable) m_ServerApp.GetUserProfile();

Вот ошибка, которую выдает компилятор:

Не удается преобразовать тип 'WSAClient.ServerApp.GetUserProfileResponseGetUser ProfileResult' в 'System.Data.DataTable'

В чем проблема?Спасибо ..

Ответы [ 2 ]

0 голосов
/ 25 мая 2011

Ваш клиентский прокси-метод возвращает объект типа WSAClient.ServerApp.GetUserProfileResponse.GetUserProfileResult. Вы, вероятно, обнаружите, что этот тип содержит ваш DataTable.

Я согласен, что вы не должны возвращать типы, специфичные для .NET. Клиент Java не поймет, что такое System.Data.DataTable, равно как клиент .NET не поймет Java Map.

0 голосов
/ 25 мая 2011

Вы нарушаете стандарты Soap, если ваш веб-сервис используется Java-клиентом, он не сможет использовать ваш веб-сервис.Лучше возвращать XML, который снова является стандартом мыла, и на стороне клиента вы можете прочитать этот XML в наборе данных и использовать набор данных из набора данных

...