偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

淺析XML序列化的優(yōu)缺點(diǎn)

開發(fā) 后端
XML序列化的優(yōu)缺點(diǎn)是我們在使用XML序列化的過程中的經(jīng)驗(yàn)總結(jié),那么這些注意事項(xiàng)也是我們在開發(fā)的過程中對于XML序列化的選擇的體現(xiàn),希望對你學(xué)習(xí)XML序列化有所幫助。

我們在.NET的學(xué)習(xí)過程中,是否發(fā)現(xiàn)了使用XML序列化的好處呢?XML序列化的好處是什么呢?還有就是有好處就會有一定的風(fēng)險(xiǎn),那么我們在使用XML序列化的時候有需要注意什么呢?下面我們來詳細(xì)看看具體的內(nèi)容。

在XML序列化中我們會用到 XmlSerializer類,它在您將對象序列化為 XML 時為您提供完整而靈活的控制。如果您正在創(chuàng)建 XML Web services,則可以將控制序列化的屬性應(yīng)用于類和成員以確保 XML 輸出符合特定的架構(gòu)。

1、XML序列化之XmlSerializer使用所帶來的好處:

◆指定應(yīng)將字段或?qū)傩跃幋a為特性還是元素。

◆指定要使用的 XML 命名空間。
 
◆如果字段或?qū)傩悦缓线m,則指定元素或特性的名稱。

◆XML序列化的另一個好處是:只要生成的XML流符合給定的架構(gòu),則對于所開發(fā)的應(yīng)用程序就沒有約束。假定有這樣一個用于描述圖書的架構(gòu),它具有標(biāo)題、作者、出版商和 ISBN 編號元素。您可以開發(fā)一個以您希望的任何方式(例如,作為圖書訂單,或作為圖書清單)處理 XML 數(shù)據(jù)的應(yīng)用程序。在任一種情況下,***的要求是 XML 流應(yīng)當(dāng)符合指定的 XML 架構(gòu)定義語言 (XSD) 架構(gòu)。

2、XML 序列化注意事項(xiàng):使用 XmlSerializer 類時,應(yīng)考慮下列情況

◆序列化數(shù)據(jù)只包含數(shù)據(jù)本身以及類的結(jié)構(gòu)。不包括類型標(biāo)識和程序集信息。

◆只能序列化公共屬性和字段。如果需要序列化非公共數(shù)據(jù),請使用 BinaryFormatter 類而不是 XML 序列化。

◆類必須有一個將由 XmlSerializer 序列化的默認(rèn)構(gòu)造函數(shù)。

◆不能序列化方法。

XmlSerializer 可以以不同方式處理實(shí)現(xiàn) IEnumerable 或 ICollection 的類(條件是這些類滿足某些要求)。實(shí)現(xiàn) IEnumerable 的類必須實(shí)現(xiàn)帶單個參數(shù)的公共 Add 方法。Add 方法的參數(shù)必須與從 GetEnumerator 方法返回的 IEnumerator.Current 屬性所返回的類型一致(多態(tài))。除實(shí)現(xiàn) IEnumerable 外還實(shí)現(xiàn) ICollection 的類(如 CollectionBase)必須有一個取整數(shù)的公共 Item 索引屬性(在 C# 中為索引器),并且它必須有一個整數(shù)類型的公共 Count 屬性。傳遞給 Add 方法的參數(shù)必須與從 Item 屬性返回的類型相同或與該類型的某個基的類型相同。對于實(shí)現(xiàn) ICollection 的類,要序列化的值將從索引 Item 屬性檢索,而不是通過調(diào)用 GetEnumerator 來檢索。另外請注意,除返回另一個集合類(實(shí)現(xiàn) ICollection 的集合類)的公共字段之外,將不序列化公共字段和屬性。有關(guān)示例,請參見 XML 序列化的示例。
XSD 數(shù)據(jù)類型映射

標(biāo)題為“XML Schema Part 2: Datatypes”的萬維網(wǎng)聯(lián)合會 (http://www.w3.org/) 文檔指定在 XML 架構(gòu)定義語言 (XSD) 架構(gòu)中允許使用的簡單數(shù)據(jù)類型。對于這些數(shù)據(jù)類型中的許多類型(例如,int 和 decimal),在 .NET Framework 中都有對應(yīng)的數(shù)據(jù)類型。但是,某些 XML 數(shù)據(jù)類型在 .NET Framework 中沒有對應(yīng)的數(shù)據(jù)類型(例如,NMTOKEN 數(shù)據(jù)類型)。在這樣的情況下,如果使用 XML 架構(gòu)定義工具 (Xsd.exe) 從架構(gòu)生成類,就會將適當(dāng)?shù)奶匦詰?yīng)用于字符串類型的成員,并會將其 DataType 屬性設(shè)置為 XML 數(shù)據(jù)類型名稱。例如,如果架構(gòu)包含一個數(shù)據(jù)類型為 XML 數(shù)據(jù)類型 NMTOKEN 的、名為“MyToken”的元素,則生成的類可能包含以下示例中的成員。

[Visual Basic]<XmlElement(DataType:="NMTOKEN")>Public MyToken As String[C#][XmlElement(DataType = "NMTOKEN")]public string MyToken;與此類似,如果創(chuàng)建一個必須符合特定 XML 架構(gòu) (XSD) 的類,應(yīng)當(dāng)應(yīng)用適當(dāng)?shù)奶匦圆⑺?DataType 屬性設(shè)置為所需的 XML 數(shù)據(jù)類型名稱。

關(guān)于XML序列化的使用優(yōu)點(diǎn)以及XML序列化的使用注意事項(xiàng)就向你介紹到這里,希望對你了解和學(xué)習(xí)XML序列化有所幫助。

【編輯推薦】

  1. 解析C# BinaryFormatter實(shí)現(xiàn)序列化
  2. 淺析C# XmlSerializer概念及作用
  3. C# XmlSerializer實(shí)現(xiàn)序列化淺析
  4. 淺析C# Xml Serializer的安全隱患
  5. C# XML序列化實(shí)例學(xué)習(xí)詮釋
責(zé)任編輯:仲衡 來源: 百度空間
相關(guān)推薦

2009-09-09 14:45:41

XML序列化和反序列化

2009-08-25 14:59:39

C# XML序列化應(yīng)用

2009-09-09 15:54:48

C# XML序列化

2022-07-27 22:36:16

ThriftRPC開源

2011-05-18 15:20:13

XML

2012-04-13 10:45:59

XML

2009-09-09 15:47:27

XML序列化和反序列化

2011-06-01 14:26:11

序列化

2010-01-08 13:25:07

ibmdwXML

2009-08-25 15:15:08

C#對象序列化應(yīng)用

2009-09-09 16:53:49

C# XmlSeria序列化

2011-06-01 15:05:02

序列化反序列化

2022-08-06 08:41:18

序列化反序列化Hessian

2018-03-19 10:20:23

Java序列化反序列化

2019-09-09 10:03:46

Python 開發(fā)編程語言

2009-09-09 17:10:50

C# XML序列化

2009-06-14 22:01:27

Java對象序列化反序列化

2009-08-24 17:14:08

C#序列化

2013-09-23 09:10:14

2023-03-27 15:37:43

自動化測試開發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號