Prevent self closing tags in XmlSerializer when no data is present

后端 未结 5 955
孤街浪徒
孤街浪徒 2020-12-10 12:53

When I serialize the value : If there is no value present in for data then it\'s coming like below format.

  
        Acknowledged b         


        
5条回答
  •  一向
    一向 (楼主)
    2020-12-10 13:40

    You can do this by creating your own XmlTextWriter to pass into the serialization process.

    public class MyXmlTextWriter : XmlTextWriter
    {
        public MyXmlTextWriter(Stream stream) : base(stream, Encoding.UTF8)
        {
    
        }
    
        public override void WriteEndElement()
        {
            base.WriteFullEndElement();
        }
    }
    

    You can test the result using:

    class Program
    {
        static void Main(string[] args)
        {
            using (var stream = new MemoryStream())
            {
                var serializer = new XmlSerializer(typeof(Notes));
                var writer = new MyXmlTextWriter(stream);
                serializer.Serialize(writer, new Notes() { typeName = "Acknowledged by PPS", dataValue="" });
                var result = Encoding.UTF8.GetString(stream.ToArray());
                Console.WriteLine(result);
            }
           Console.ReadKey();
        }
    

提交回复
热议问题