【发布时间】:2011-05-22 22:22:22
【问题描述】:
我在从 wcf 消息中检索正文时遇到了一些问题。我正在尝试实现 WCF 消息检查器来验证针对 XSD 架构的消息。
肥皂体如下所示:
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Header xmlns="http://www.test1.com">
<applicationID>1234</applicationID>
</Header>
<GetMatchRequest xmlns="http://www.tempuri.org">test</GetMatchRequest>
</s:Body>
问题是当我尝试获取正文时,它只会收到部分正文消息。只获取 header 元素,忽略 GetMatchRequest 元素(可能是因为多个命名空间...)
我正在使用以下获取消息正文:
XmlDocument bodyDoc = new XmlDocument();
bodyDoc.Load( message.GetReaderAtBodyContents().ReadSubtree());
我也尝试了以下方法:
bodyDoc.Load( message.GetReaderAtBodyContents());
上面的代码导致错误 - 此文档已经有一个“DocumentElement”节点。
谁能帮忙从 WCF 消息中提取正文?
谢谢
【问题讨论】:
-
请向我们展示您的服务合同是什么样的。通常,您无需担心 SOAP 会通过网络传输。 WCF 将其抽象化,因此您可以处理对象调用等。
-
为什么您觉得需要验证 XML?如果将无效的 XML 发送到您的服务,您认为会发生什么?您认为哪种代码会向您发送无效的 XML,如果您告诉它 XML 无效,您认为该代码会做什么?
标签: wcf