序列化一个类通常添加[XmlRoot("根节点名字")] 找到要序列化的内容
对要序列化的类添加 [Serializable]属性用于序列化
对于要序列化的字段添加 [XmlElement("序列化对应的节点名字,即字段的别名")]
<Headmaster IsAssistant="false"> private bool _isAssistant; [XmlAttribute("IsAssistant")] public bool IsAssistant { get { return _isAssistant; } set { _isAssistant = value; } } <Name>June</Name> [XmlText()] public string Name { get { return _name; } set { _name = value; } } <Classes> <Class> <Teacher> <Name>June</Name> <Sex>O</Sex> <Age>30</Age> </Teacher> <Students> <Student> <Name>Student1</Name> <Sex>I</Sex> <Age>10</Age> </Student> </Students> </Class> <Class> <Teacher> <Name>Sam</Name> <Sex>I</Sex> <Age>32</Age> </Teacher> <Students> <Student> <Name>Student2</Name> <Sex>O</Sex> <Age>10</Age> </Student> <Student> <Name>Student3</Name> <Sex>I</Sex> <Age>10</Age> </Student> <Student> <Name>Student4</Name> <Sex>O</Sex> <Age>10</Age> <Skill>DB</Skill> <Skill>C#</Skill> </Student> </Students> </Class> </Classes> private List<Class> _classes = new List<Class>(); [XmlArray("Classes")] [XmlArrayItem("Class")] public List<Class> Classes { get { return _classes; } }
[Serializable]:用于标志这个类是可进行序列化的。注意此属性只能用于类定义上,另外类也可以通过实现System.Runtime.Serialization.ISerializable进行自定义序列化控制。
[XmlRoot]:用于定义xml根节点的节点名称。
[XmlElement]:用于定义类属性在序列化中对应节点的名称。
[XmlIgnore]:标志此属性不参与序列化。
[XmlArray]:通常与[XmlArrayItem]配合使用,定义数组的父节点名称与子节点名称。