0

我有一个奇怪的问题,在将 XMLElement 发送到 WCF 服务时,我似乎无法正确获取命名空间。

XMLElement 来自一个从磁盘加载的 XMLDocument,如下所示:

 XmlDocument xmlDoc = new XmlDocument();
 xmlDoc.Load(new XmlTextReader("C:\\Temp\\Test.xml"));

XML 包含以下命名空间:

<Root ID="0bb2cc41-57d0-4fc7-93e9-4cbddc8f216b" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:somenamespace:2009.07.03">

但是,当我像这样使用 WCF 服务时

vsLightKlient.SendRequest(xmlDoc.DocumentElement);

我可以看到 WCF 服务只接收

<Root ID="8aa6d535-f448-47b6-b982-c4b9b50556aa" xmlns="urn:somenamespace:2009.07.03>

这是一个问题,因为我正在XMLDocument使用额外的命名空间签署原始文件。移除多余的命名空间后,签名与我发送的不匹配,验证失败

我如何xmlDoc.DocumentElement才能真正发送所有的命名空间?

4

1 回答 1

0

通过使用此提示:

https://stackoverflow.com/a/12337548/1005134

我能够强制 WCF 客户端接受 XElement。当我收到我发回的有效负载时,我可以看到我所有的命名空间都存在。虽然不确定 DocumentElement 的错误在哪里。

最好的,

安德烈亚斯

于 2013-09-19T14:03:55.707 回答