gpt4 book ai didi

xml - 无关的 wcf 正文 xml 命名空间声明

转载 作者:行者123 更新时间:2023-12-04 16:51:06 26 4
gpt4 key购买 nike

我使用 .Net 3.5 svcutil.exe 工具生成了一组 Web 服务代理对象。 soap body 元素有 2 个无关的 xml 命名空间别名声明。特别是架构和架构实例命名空间( http://www.w3.org/2001/XMLSchemahttp://www.w3.org/2001/XMLSchema-instance )。

由于其他原因,我正在与之交互的服务存在无法包含这些声明的错误。我想弄清楚如何删除它们。任何帮助,将不胜感激。肥皂消息看起来像这样。

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
...
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
...
</s:Body>
</s:Envelope>

最佳答案

我找到的解决方案是实现一个消息检查器。我创建了一个实现 IClientMessageInspector 的类。此类将有机会在消息通过网络发送之前修改消息,或者在消息从网络发送出去后修改响应。然后,我创建了另一个类 IEndpointBehavior,用于注册自定义消息检查器。最后,我创建了一个扩展 BehaviorExtensionElement 的类,以允许在配置文件中指定自定义行为。

使用此解决方案,我可以在消息发送到服务器时对其进行修改,并删除有问题的 xsi 和 xsd 别名定义。

关于xml - 无关的 wcf 正文 xml 命名空间声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3304890/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com