Web-клиент WSDL и метод alter для возврата строки мыла - PullRequest
2 голосов
/ 15 января 2012

Прежде всего, я полный нуб в области WCF / WSDL, поэтому, пожалуйста, будьте терпеливы со мной

Хорошо, у меня есть WSDL, XSD для сложных типов сообщений, я создал тестовый клиент в консольном приложении C #. Я добавил веб-ссылку на полученный в WSDL код, сгенерированный в reference.cs.

Я назвал методы, доступные в reference.cs, отлично работает отлично. Я добавил расширение трассировки мыла для методов в reference.cs, чтобы регистрировать запросы / ответы мыла, работает нормально.

В клиенте я получаю объект класса сложного типа WSDL, где я вижу, что все возвращается нормально как для синхронизации, так и для асинхронных вызовов.

Теперь это то, что я хочу / пытаюсь сделать, я хочу, чтобы методы возвращали не десериализованный объект класса, а мыльную строку, как они получены в потоке и перед десериализацией.

Как изменить метод для возврата мыльной строки? Речь идет не о доступе к ним (что мне удалось сделать), а о том, чтобы вернуться непосредственно из метода.

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

Я ценю любую помощь. Дайте мне знать, если я должен уточнить вещи.

Обновление:

Хорошо, сэр, это то, что я сделал:

сгенерировал класс из WSDL с помощью svcutil, затем:

ServiceClient1 sc1 = new ServiceClient1();
TestResponseClass trc1 = sc1.method1("Testinput");
System.Xml.Serialization.XmlSerializer x = new    System.Xml.Serialization.XmlSerializer(typeof(TestResponseClass ),"http://xxx.xxx.xxx.local/Service1.wsdl");
StringWriter stringWriter = new StringWriter();
x.Serialize(stringWriter, trc1);
Console.Write(stringWriter.ToString());  

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

1 Ответ

1 голос
/ 15 января 2012

Возможно, вы немного запутались.Не используйте веб-ссылки.Это устаревшая технология ASMX, которая была заменена WCF и «Добавить ссылку на службу».

Не используйте ASMX для новой разработки.


Я видел ваше обновление, и выдействительно, сбиты с толку.

Ваш код имеет:

ServiceClient1 sc1 = new ServiceClient1();
TestResponseClass trc1 = sc1.method1("Testinput");

Вот и все.Вы сделалиВы уже отправили SOAP-сообщение в службу и уже получили ответ.Совсем нет необходимости работать с XML.

...