asp.net如何通過(guò)自定義對(duì)象實(shí)現(xiàn)xml的序列化代碼
System.Xml.Serialization命名空間中有一系列的特性類,用來(lái)控制復(fù)雜類型序列化的控制。例如 XmlElementAttribute、XmlAttributeAttribute、XmlArrayAttribute、 XmlArrayItemAttribute、XmlRootAttribute等等。
看一個(gè)小例子,有一個(gè)自定義類Cat,Cat類有三個(gè)屬性分別為Color,Saying,Speed。
namespace UseXmlSerialization
{
class Program
{
static void Main(string[] args)
{
//聲明一個(gè)貓咪對(duì)象
var c = new Cat { Color = "White", Speed = 10, Saying = "White or black, so long as the cat can catch mice, it is a good cat" };
//序列化這個(gè)對(duì)象
XmlSerializer serializer = new XmlSerializer(typeof(Cat));
//將對(duì)象序列化輸出到控制臺(tái)
serializer.Serialize(Console.Out, c);
Console.Read();
}
}
[XmlRoot("cat")]
public class Cat
{
//www.3ppt.com定義Color屬性的序列化為cat節(jié)點(diǎn)的屬性
[XmlAttribute("color")]
public string Color { get; set; }
//要求不序列化Speed屬性
[XmlIgnore]
public int Speed { get; set; }
//設(shè)置Saying屬性序列化為Xml子元素
[XmlElement("saying")]
public string Saying { get; set; }
}
}<SPAN style="FONT-FAMILY: verdana, Arial, Helvetica, sans-serif" face="verdana, Arial, Helvetica, sans-serif"><SPAN class=Apple-style-span style="FONT-SIZE: 14px; LINE-HEIGHT: 21px; WHITE-SPACE: normal">
</SPAN></SPAN>
可以使用XmlElement指定屬性序列化為子節(jié)點(diǎn)(默認(rèn)情況會(huì)序列化為子節(jié)點(diǎn));或者使用XmlAttribute特性制定屬性序列化為Xml節(jié)點(diǎn)的屬性;還可以通過(guò)XmlIgnore特性修飾要求序列化程序不序列化修飾屬性