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

时间:2017-06-08 16:06:16

标签: c# xml wcf

使用C#,我一直在尝试从客户端,在SOAP WCF服务中接收XML作为字符串(不是我的选择,这是客户端选择发送它的方式),我无法得到它在WCF测试客户端中正常工作。我以为我找到了问题。我假设关闭XML标记中的反斜杠会导致WCF测试客户端错误地解析并向我的服务发送空值而不会在WCF测试客户端中抛出任何异常或任何内容。请参阅以下链接。

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

然而,这似乎不是问题,因为XML中的斜杠是/斜杠,导致问题的斜杠是\ slashes。有什么建议?这是我复制的字符串+粘贴到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字符串。

谢谢!

1 个答案:

答案 0 :(得分:1)

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