【发布时间】:2014-06-16 14:18:13
【问题描述】:
我正在尝试使用 Web 服务,因此我在 Visual Studio 中添加了一个服务引用,它生成了一个带有类型对象(数据协定)的代理。
我面临的挑战是我想通过通道发送的数据已经序列化为 SOAP XML 并且包含所有 SOAP 标头!!有没有办法通过将其转换为类型化对象并让 WCF 自动序列化它来沿通道传输此 SOAP XML?
【问题讨论】:
标签: c# xml web-services wcf soap
我正在尝试使用 Web 服务,因此我在 Visual Studio 中添加了一个服务引用,它生成了一个带有类型对象(数据协定)的代理。
我面临的挑战是我想通过通道发送的数据已经序列化为 SOAP XML 并且包含所有 SOAP 标头!!有没有办法通过将其转换为类型化对象并让 WCF 自动序列化它来沿通道传输此 SOAP XML?
【问题讨论】:
标签: c# xml web-services wcf soap
假设您的序列化 XML 来自与您在 Visual Studio 中添加服务引用的 Web 服务相同的 Web 服务,您应该能够使用 XmlSerializer 将您的 XML 反序列化为来自 Web 服务引用的类型化对象。
(可选)您可以在 Visual Studio 中创建 Web 引用,这样它就不会创建类型化对象。有两种类型的引用,服务引用和 Web 引用。一个或另一个(不记得哪个)应该允许您使用 xml 而不是类型化的对象对 web 服务进行操作。
同样,您可以尝试使用 SoapHttpClientProtocol "http://msdn.microsoft.com/en-us/library/system.web.services.protocols.soaphttpclientprotocol(v=vs.110).aspx" 自己调用它(这是类型化客户端的派生源)。它具有 BeginInvoke 等方法,可让您通过名称等调用 Web 服务方法。
【讨论】: