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