вызов веб-сервиса и десериализация мыла без wsdl - PullRequest
3 голосов
/ 08 сентября 2011

У меня есть продавец, у которого, похоже, нет wsdl, или он не хочет или не знает, как его предоставить. У них есть несколько веб-сервисов (технически они являются JSP, которые возвращают мыльные сообщения), и мне нужно использовать около 10-15 из них, чтобы выполнить свою работу.

Поскольку WSDL не существует, я не могу использовать функцию «добавить веб-ссылку» для генерации прокси-классов и тому подобного. Я справился с этим, используя WebClient для выполнения вызовов и возврата ответа в виде строки, но теперь мне нужно десериализовать ответ в клиентские классы.

Я уже создал классы c # для соответствия возвращаемому xml, но я не уверен, как десериализовать из SOAP, так как в xml так много шума. Я мог бы удалить теги конвертов SOAP, а затем использовать сериализатор XML для десериализации до List<SomeType>, но это выглядит очень грязно. Есть ли лучший способ?

Ответы [ 2 ]

1 голос
/ 08 сентября 2011

Я опубликовал статью, подробно описывающую, как десериализовать сложный XML.

вот ссылка: http://blog.impact -works.com / 2011/06/30 / how-to-serializedeserialize-complex-xml-in-asp-net-c /

надеюсь, это поможет

1 голос
/ 08 сентября 2011

Вы пытались использовать SoapFormatter.Deserialize () для десериализации ответа. Если это так, это было бы полезно. http://msdn.microsoft.com/en-us/library/system.runtime.serialization.formatters.soap.soapformatter.deserialize(v=vs.71).aspx

...