如何控制序列化进程?例如,忽略类中包含的一个属性,改变元素的名字,或决定一个类的属性序列化为XML的节点或XML节点的属性。
XmlSerializer是一个自动化的过程,但可以使用一些方便的方法,根据需求去改变XML。如:
[XmlIgnore]
public char MiddleInitial { get; set; }
[XmlElement(“DOB”)]
public DateTime BirthDate { get; set; }
[XmlAttribute(“GPA”)]
public double HighschoolGPA { get; set; }
输出为:
Before serialize:
John Q. Public, DOB:7/4/1776, GPA: 3.5
1234 Cherry Lane
Smalltown, VA 10000
XML:
<?xml version=”1.0” encoding=”utf-16”?>
<Person xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xmlns:xsd=”http://www.w3.org/2001/XMLSchema” GPA=”3.5”>
<FirstName>John</FirstName>
<LastName>Public</LastName>
<DOB>1776-07-04T00:00:00</DOB>
<Address>
<AddressLine1>1234 Cherry Lane</AddressLine1>
<City>Smalltown</City>
<State>VA</State>
<ZipCode>10000</ZipCode>
</Address>
</Person>
After deserialize:
John . Public, DOB:7/4/1776, GPA: 3.5
1234 Cherry Lane
Smalltown, VA 10000