簡(jiǎn)述Xml.Serialization如何序列化對(duì)象到XML文件
來(lái)源:易賢網(wǎng) 閱讀:797 次 日期:2015-02-27 10:43:41
溫馨提示:易賢網(wǎng)小編為您整理了“簡(jiǎn)述Xml.Serialization如何序列化對(duì)象到XML文件”,方便廣大網(wǎng)友查閱!

先簡(jiǎn)單描述XML文件的結(jié)構(gòu)如何。

XML文件中,“元素(Element)”是其基本結(jié)構(gòu),整個(gè)XML文件就是由若干“元素(Element)”組成的。

下面是一個(gè)元素的例子:

<T Name="Sample">This is Sample</T>

整個(gè)這一串字符稱為“元素(Element)”,它由幾部分組成。T稱為“元素(Element)”的“標(biāo)簽(Tag)”。一個(gè)“元素(Element)”包含開(kāi)始標(biāo)簽<T>和結(jié)束標(biāo)簽</T>。標(biāo)簽內(nèi)包含“文本(Text)”,本例是This is Sample字符串;或者包含子元素(也就是元素的嵌套)。而Name="Sample"稱為“元素(Element)”的“屬性(Attribute)”,不過(guò)“屬性(Attribute)”不是“元素(Element)”的必須的部分,可以沒(méi)有,可以有若干個(gè)。

XML文件就是由若干個(gè)“元素(Element)”組成的。不過(guò)只能有一個(gè)“根元素(Root)”,其他的元素都是“根元素(Root)”的子元素,或者是子元素的子元素。

Xml.Serialization序列化一個(gè)對(duì)象,就是把對(duì)象序列化成一個(gè)XML的“元素(Element)”。如果一個(gè)類沒(méi)有加任何的特性,那么默認(rèn)的話,這個(gè)類序列化后的“標(biāo)簽(Tag)”就是這個(gè)類的類名,這個(gè)類的公共字段和公共屬性都被序列化

成子元素,子元素的“標(biāo)簽(Tag)”就是字段名(或者是屬性名),子元素的“文本(Text)”就是字段值(或者是屬性值)。

通過(guò)Xml.Serialization中的一些類,可以給一個(gè)類添加一些特性,使得在序列化的時(shí)候,能夠?qū)崿F(xiàn)自己的定制。

XmlRoot("Settings"),這個(gè)表明把類序列化成“根元素(Root)”,“根元素(Root)”的“標(biāo)簽(Tag)”是Settings而不是原來(lái)的類名。注意,一個(gè)XML文件中只能有一個(gè)“根元素(Root)”。

XmlElement("T"),這個(gè)表明把類或者是字段(屬性)序列化成“元素(Element)”,元素的“標(biāo)簽(Tag)”是T,而不是原來(lái)的類名(字段名或者是屬性名)。

XmlAttribute("Count"),這個(gè)表明把字段(屬性)序列化成“屬性(Attribute)”,屬性名就是字段(屬性)名,屬性值就是字段(屬性)值。這個(gè)似乎不能運(yùn)用在數(shù)組字段(屬性)。

XmlText,這個(gè)表明把字段(屬性)序列化成“文本(Text)”,文本值就是字段(屬性)值。不過(guò),一個(gè)類中,只能有一個(gè)字段(屬性)序列化成“文本(Text)”,而且這個(gè)類序列化后的元素還不能有子元素,意味著這個(gè)類的其他字段(屬性)只能序列化成“屬性(Attribute)”。

XmlIgnore,這個(gè)表明不序列化指定的字段(屬性)。

除了以上的,在遇到集合類型的字段(屬性)時(shí),Xml.Serialization是將該字段(屬性)序列化成一個(gè)“元素(Element)”,該字段中的每一個(gè)對(duì)象序列化成該元素的子元素。

對(duì)集合類型的字段(屬性)可以添加下列特性

XmlArray("E"),這個(gè)表明把該字段(屬性)序列化成“元素(Element)”,“標(biāo)簽(Tag)”為E。

例如:<XmlArray("E")>Public Student As List(Of String),有三個(gè)值A(chǔ)、B、C。

序列化后的結(jié)果為:

<E>

<String>A</String>

<String>B</String>

<String>C</String>

</E>

<XmlArrayItem("E")>,這個(gè)表明把該字段(屬性)每一個(gè)對(duì)象序列化為“元素(Element)”,“標(biāo)簽(Tag)”為E。

例如:<XmlArrayItem("E")>Public Student As List(Of String),有三個(gè)值A(chǔ)、B、C。

序列化后的結(jié)果為:

<Student>

<E>A</E>

<E>B</E>

<E>C</E>

</Student>

大家可以和上面的例子對(duì)照一下區(qū)別。

另外,上面兩個(gè)特性是可以疊加的。

還可以對(duì)集合型的字段(屬性)添加X(jué)mlElement("E"),它表明將每一個(gè)對(duì)象序列化為“元素(Element)”,“標(biāo)簽(Tag)”為E,同時(shí)每一個(gè)對(duì)象又都是它的子元素。通俗的講,就是平行序列化。

例如::<XmlElement("Lan")>Public Student As List(Of String),有三個(gè)值A(chǔ)、B、C。

序列化后的結(jié)果為:

<E>

<String>A</String>

</E>

<E>

<String>B</String>

</E>

<E>

<String>C</String>

</E>

以上是簡(jiǎn)單的描述通過(guò)Xml.Serialization中的一些類,來(lái)控制對(duì)象的序列化成XML文件。也希望和各網(wǎng)友交流。

更多信息請(qǐng)查看IT技術(shù)專欄

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:簡(jiǎn)述Xml.Serialization如何序列化對(duì)象到XML文件
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國(guó)考·省考課程試聽(tīng)報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)