zoukankan      html  css  js  c++  java
  • Net 使用XmlSerializer序列化对象,如果属性值为空字符串的时候,序列化后的节点强制不简写

    问题概述,最近在接某些特殊部门的项目后,发现当我生成一个XML报文后,当属性为空字符串的时候,生成的xml节点默认是缩写模式比如

    public string note {get;set;}

     生成的xml 节点是<note />,目标期望生成<note></note>

    解决 

      直接上代码

      public class XmlTextWriterFull : XmlTextWriter
        {
            public XmlTextWriterFull(TextWriter sink) : base(sink) { }
    
            public XmlTextWriterFull(Stream stream, Encoding enc) : base(stream, enc) { }
            public XmlTextWriterFull(String str, Encoding enc) : base(str, enc) { }
    
    
            public override void WriteEndElement()
            {
                base.WriteFullEndElement();
            }
        }

    调用

     public static string XmlSerialize1(object o, Encoding encoding)
            {
                if (o == null)
                    throw new ArgumentNullException("o");
                if (encoding == null)
                    throw new ArgumentNullException("encoding");
    
                string xml = "";
                try
                {
                    System.IO.MemoryStream memOut = new System.IO.MemoryStream();
                    XmlTextWriterFull writer = new XmlTextWriterFull(memOut, Encoding.UTF8); 
                    var serializer = new XmlSerializer(o.GetType());
                    serializer.Serialize(writer, o);
                    memOut.Position = 0;
                    using (StreamReader reader = new StreamReader(memOut, Encoding.UTF8))
                    {
                        xml = reader.ReadToEnd();
                    }              
                    return xml;
                }
                catch (Exception ex)
                {
    
                }
                return xml;
            }

     

  • 相关阅读:
    13年7月memory point
    getDefinitionByName getDefinition 区别
    cocos2d-html5版日历组件
    一个js对象的代码结构
    计算机操作系统复习
    计算机组成原理复习
    最新的hustoj搭建姿势
    推荐算法学习笔记
    BUPT 2012复试机考 4T
    BUPT 2012复试机考 3T
  • 原文地址:https://www.cnblogs.com/yibey/p/12922379.html
Copyright © 2011-2022 走看看