• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
皇图霸业谈笑间
更高、更快、更强
博客园    首页    新随笔    联系   管理    订阅  订阅
关于XML序列化的几个问题

问题描述:同事使用第三方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  显式名称空间

 

 

 

posted on 2010-04-13 17:52  布颜书  阅读(618)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3