【问题标题】:How to declared namespace prefix in SOAP header如何在 SOAP 标头中声明命名空间前缀
【发布时间】:2019-01-12 02:56:03
【问题描述】:

我正在使用以下代码将标题添加到肥皂标题。

using (new OperationContextScope(client.InnerChannel))
{
    OperationContext.Current.OutgoingMessageHeaders.Add(
        MessageHeader.CreateHeader("ns:To", "", "http://###.com"));                                
}

但我收到undeclared namespace prefix ns 错误,我需要将xmlns:ns="http://www.w3.org/2005/08/addressing" 添加到命名空间。

所以我的问题是如何添加命名空间前缀

<s:Envelope>
    <s:Header>
        <ns:To>##</ns:To>
    </s:Header>
</s:Envelope>

<s:Envelope>
    <s:Header xmlns:ns="http://www.w3.org/2005/08/addressing">
        <ns:To>##</ns:To>
    </s:Header>
</s:Envelope>

【问题讨论】:

标签: c# soap header namespaces


【解决方案1】:

试试这个:

String oasisWsSecNS = "http://www.w3.org/2005/08/addressing";
XmlDocument document = new XmlDocument();
     
XmlElement child = document.CreateElement("To", oasisWsSecNS);
child.AppendChild(document.CreateTextNode("[value]"));
element.AppendChild(child);
            
context.OutgoingMessageHeaders.Add(MessageHeader.CreateHeader("Header", oasisWsSecNS, document.DocumentElement));

【讨论】:

    猜你喜欢
    • 2014-02-25
    • 1970-01-01
    • 2019-09-26
    • 2014-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多