Я пишу клиент C #, который вызывает веб-сервис, написанный на Java (другим человеком). Я добавил веб-ссылку на мой клиент, и теперь я могу вызывать методы в веб-службе.
Служба была изменена для возврата массива объектов, и клиент неправильно анализирует возвращенное сообщение SOAP.
MyResponse[] MyFunc(string p)
class MyResponse
{
long id;
string reason;
}
Когда мой сгенерированный прокси-сервер C # вызывает веб-сервис (используя SoapHttpClientProtocol.Invoke), я ожидаю массив MyResponse [] длиной 1, то есть один элемент. После вызова Invoke я получаю элемент с id = 0 и reason = null, независимо от того, что на самом деле возвращает сервис. Используя перехватчик пакетов, я вижу, что служба возвращает то, что кажется допустимым мыльным сообщением, для идентификатора и причины которого заданы ненулевые значения.
Есть ли хитрость в том, чтобы заставить клиента C # вызывать веб-сервис Java, который возвращает someobject []? Я буду работать над получением продезинфицированного демо, если это необходимо.
Редактировать : Это веб-ссылка через "Добавить веб-ссылку ...". VS 2005, .NET 3.0.