【发布时间】:2013-01-03 17:27:25
【问题描述】:
我正在使用提供的 WSDL 文件为第三方 SOAP 服务编写客户端。使用 WCF 执行此操作的默认方法是使用 svcutil 生成本地代理类,并让 WCF 自动反序列化对服务调用的回复到代理对象中。
但是 - 由于我已经为我的目的建立了与 XML 和 XPath 一起工作的代码,所以我对使用代理对象并不感兴趣,我宁愿只接收原始形式的主体,而不必重新序列化他们。另一方面,我不想自己编写 SOAP 请求的麻烦,并希望 WCF 继续处理它。
我知道 svcutil 的 /importXmlTypes 标志几乎可以让我到达那里,只需要包含 XmlNode 数组的顶级回复对象,但最好是我希望
XmlDocument SomeServiceMethod(...)
这样的事情可能吗?
【问题讨论】:
-
您是否尝试过使用
XmlElement(而不是XmlDocument)?那应该行得通。XElement应该也可以。 -
使用 XmlElement 仅捕获正文中的第一个元素。奇怪的是,使用 XmlElement[] 并没有捕获任何东西,并且使用 XmlNode[] 最终可以工作(如 WCF 错误消息所建议的那样)并且足够好。谢谢!