Справочник по сервису C # Java -> C # - PullRequest
1 голос
/ 03 ноября 2011

Сначала позвольте мне сказать, что это не идеальная ситуация. У меня нет копии исходного WSDL, чтобы определить, что изменилось; Я также работаю с разработчиками через стену, которые не могут помочь. Мое приложение разработано в Visual Studio 2010 с использованием конечной точки службы, написанной на Java.

У меня есть приложение на C #, содержащее ссылку на службу, я буду называть ее произвольно Widget. Виджет имеет метод DoWork, который принимает четыре аргумента: аргумент 01, аргумент02, аргумент03 и аргумент04.

Подпись метода моего сгенерированного кода C # такая

public DoWorkResponse DoWork(string argument01, int argument02, bool argument03, int argument04)

Недавно был добавлен новый метод, и мне сказали обновить мою ссылку. Когда я это сделал, моя подпись изменилась с вышеупомянутого на:

public DoWorkResponse DoWork(DoWork DoWork1)

где DoWork

partial class DoWork
{
    string argument01;

    int argument02;

    bool argument03;

    int argument04;

}

Извините, что я не могу предоставить оригинальный код, но, как большинство из вас может понять, это невозможно.

Так что в основном я ищу некоторое понимание того, что могло бы измениться на стороне Java, чтобы Visual Studio генерировал иначе, чем раньше.

Заранее спасибо!

1 Ответ

2 голосов
/ 03 ноября 2011

Возможно, элемент parameterStyle в аннотации SOAPBinding был изменен, чтобы стиль параметров обнажился, а не был перенесен.Они могут попытаться добавить это в определение своего сервиса:

@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)  

Возможно, их версия SOAP также изменилась.Я не эксперт по веб-сервисам Java, но это обсуждение информативно как для SOAP, так и для веб-сервисов Java.

Если они не могут или не хотят вносить эти изменения с их стороны, вы можете иметь некоторый контроль над связываниями на стороне клиента.См. .NET Framework Поддержка форматов SOAP .По сути, вы можете генерировать свои классы из WSDL, используя дополнительные параметры командной строки с помощью wsdl.exe.

С другой стороны, у них нет версий в их исходном коде?Конечно, их история будет отражать, какие изменения они внесли в свои услуги или параметры.

...