问题描述:同事使用第三方WEBSERVICE接口的时候,发现提交上去的SOAPHEAD格式不对(可以通过监视工具查看)。
发现提交上去的SOAPXML信息不是带“显式名称空间”的XML格式,现在问题是我们如何修改WEBSERVICE代理文件,实现提交SOAPHEAD的信息满足带“显式名称空间”的XML格式。
几个重要的属性:
XmlRootAttribute
XmlSerializerNamespaces
XmlNamespaceDeclarations
最终的解决方案是:
[System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.msag.com")]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "http://www.msag.com", IsNullable = false)]
public class MessageHeader : System.Web.Services.Protocols.SoapHeader
{
public MessageHeader()
{
xmlns = new XmlSerializerNamespaces();
xmlns.Add("msag", "http://www.msag.com");
}
/// <remarks/>
public string spid { get; set; }
/// <remarks/>
public string password { get; set; }
/// <remarks/>
public string timestamp { get; set; }
[XmlNamespaceDeclarations]
public XmlSerializerNamespaces xmlns { get; set; }
}
关键在构造函数中的名称空间前缀添加
=====================其他相关收集======================
搜索关键字: .net xml 名称空间 前缀
.net xml 显式名称空间
浙公网安备 33010602011771号