C# xml序列化和反序列化

**以前没有用C#定义的反序列化方式来定义对象,都是直接操作的xml元素,在用到Newlife.Core时,有用到

既有属性又有值形式的xml反序列化对应对象定义

例如:<cat id="1">猫</cat>

public class Cat
{
       [XmlAttribute]
        public String id { get; set; } 

        [XmlText]   
        public String value{get;set;}
}

经测试,直接用 XmlSerializer serializer = new XmlSerializer(typeof(T));可以将Cat序列化为<cat id="1">猫</cat>。但使用newlife.core时,序列化为<cat id="1"><value>猫</value></cat>的形式。

因为Newlife.core底层序列化的方式是使用的反射,NewLife.Core\Serialization\SerialHelper.cs

IxmlHandler派生:XmlGeneral,XmlList,XmlComposite

数组时->XmlGeneral(基础类型), ->XmlList(集合类型)√

XmlWriterSettings、XmlWriter

 

 

xml相关的属性

 

posted @ 2023-06-14 15:05  没有故事的毛同学  阅读(429)  评论(0)    收藏  举报