当 XML 字符串作为参数输入时,WCF 测试客户端将 Null 值发送到服务



使用 C#,我一直在尝试在 SOAP WCF 服务中以字符串形式从客户端接收 XML(不是我的选择,这是客户端选择发送它的方式),但我无法让它在 WCF 测试客户端中正常工作。我以为我已经找到了问题所在。我假设结束 XML 标记中的反斜杠会导致 WCF 测试客户端分析不正确,并向我的服务发送空值,而不会在 WCF 测试客户端中引发任何异常或任何内容。请参阅下面的链接。

http://programmersranch.blogspot.com/2014/08/c-wcf-backslash-limitation-in-wcf-test.html

但是,这似乎不是问题所在,因为XML中的斜杠是/斜杠,导致问题的斜杠是\斜杠。有什么建议吗?这是我在 WCF 测试客户端中复制 + 粘贴到我的服务方法之一的字符串参数中的字符串。我已经转义了引号等以避免字符串解析问题,但即使在转义它们之后它仍然不起作用。

<?xml version="1.0"?><QBXML><QBXMLMsgsRs><ItemNonInventoryQueryRs requestID="SXRlbVF1ZXJ5fDEyMA==" statusCode="500" statusSeverity="Warn" statusMessage="The query request has not been fully completed. There was a required element 'your item name' that could not be found in QuickBooks."/></QBXMLMsgsRs></QBXML>

另外,我想指出的是,如果我输入像"BOB"或"sally2135"这样的字符串或根本不是XML的东西,它会很好地接收字符串。它只是不喜欢 XML 字符串。

谢谢!

事实证明,解决方案非常简单。在问了一个我已经工作了几个小时的问题几分钟后,我找到了答案。在删除字符串中所有引号之前的 \ 后,我收到了 XML 字符串,没有问题。

最新更新