在.NET Framework 中的 XML 序列化的資訊: 藍圖

文章翻譯 文章翻譯
文章編號: 314150 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

本文提供學習藍圖以及主序列化和還原序列化的 XML 與.NET Framework (System.Xml 命名空間)。

藍圖文件提供包括線上文件]、 [微軟知識庫文件] 及 [Microsoft 份白皮書,幫助您了解 Microsoft 產品或技術的有用資訊的連結。Microsoft 知識庫 How To 文件和逐步解說提供完成特定工作的逐步指示。快速入門範例檔案是說明一種技術的現成程式。

概觀

序列化是將物件轉換成可以輕鬆地傳輸的表單的程序。比方說可以將物件序列化,並透過網際網路傳輸用戶端和伺服器之間使用 HTTP。其他在端還原序列化使用重建從資料流物件。

.NET Framework 功能兩種序列化技術:
  • 二進位序列化 會保留可用來保留的應用程式的不同引動過程之間的物件狀態的型別精確度。比方說,您可以共用由序列化至剪貼簿的不同應用程式之間的物件。比方說您可以序列化至一個資料流到一個磁碟到記憶體,或透過網路物件。遠端處理使用序列化值"] 所傳遞物件從一個電腦或應用程式網域到另一個。
  • XML 序列化 將只公用欄位和屬性值的物件序列化為 XML 資料流。XML 序列化並不包含型別資訊。 比方說如果您 活頁簿 物件,存在於 程式庫 的命名空間並它將還原序列化成相同型別的物件不保證。
請務必瞭解這兩種技術之間差異。XML 序列化並不會轉換方法、 索引子、 私用欄位或唯讀屬性 (除了唯讀集合)。要序列化的所有公用和私用欄位和屬性的物件,使用 BinaryFormatter 來取代 XML 序列化。

下列連結提供關於 XML 序列化和還原序列化,Microsoft Visual Studio.NET 中的概觀資訊:
引入 XML 序列化
http://msdn2.microsoft.com/en-us/library/182eeyhh(vs.71).aspx

XML 與 SOAP 序列化
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconserialization.asp

XML 序列化架構

System.Xml.Serialization 命名空間包含用來將物件序列化為 XML 格式的文件或資料流的類別。

中央的類別命名空間中是 XmlSerializer 類別。若要將這個類別使用 XmlSerializer 的建構函式,利用要序列化的物件 類型 建立類別的執行個體。建立 XmlSerializer 之後建立要序列化物件的執行個體。您也必須建立物件以將檔案寫入文件或 資料流TextWriterXmlWriter 等的串流。您可以再呼叫 Serialize 方法,以將物件轉換成 XML 文件。

若要從 XML 文件將物件還原序列化,建立 [適合物件讀取文件或資料流 (一次 資料流TextWriterXmlWriter)]。轉型至原始已序列化的物件 類型 所產生的物件時,叫用 Deserialize 方法。

若要控制序列化多個,System.Xml.Serialization 命名空間會提供數個可套用至類別的成員的 屬性 類別。比方說如果類別中包含成員會序列化為 XML 項目,您就可以將 XmlElementAttribute 屬性套用到成員]。在套用屬性時您可以使用 ElementName 屬性來指定詳細資料,例如實際的 XML 項目名稱。

下列連結提供關於 XML 序列化和還原序列化的架構 (內部) 資訊:
XML 序列化類別
http://msdn2.microsoft.com/en-us/library/system.xml.serialization.xmlserializer(vs.71).aspx

System.Xml.Serialization 階層
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemxmlserializationhierarchy.asp

重要概念和 Quickstarts

下列連結提供更關於金鑰 XML 文件序列化和還原序列化的概念和快速入門教學課程。
使用 XML Web 服務的 XML 序列化
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconxmlserializationwithwebservices.asp

如何我讀/寫物件成 XML?
http://samples.gotdotnet.com/quickstart/aspplus/default.aspx?url=/quickstart/howto/doc/XMLSerialization/RWObjFromXML.aspx

覆寫 XML 序列化
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconoverridingserializationofclasseswithxmlattributeoverridesclass.asp

.NET 範例-如何: XML 序列化
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpqstart/html/cpsmpnetsamples-howtoxmlserialization.asp
在 「 範例的 XML 序列化 」 連結提供數個程式碼範例,示範 XML 序列化包括下列:
  • 資料集的序列化
  • XmlElement 和 XmlNode 的序列化
  • 包含欄位,傳回序列化的複雜物件的類別
  • 序列化的物件的陣列
  • 序列化實作 [ICollection 的類別介面
  • 購買順序範例
XML 序列化的範例
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconanexampleofxmlserializationwithxmlserializer.asp
"控制 XML 序列化使用屬性"連結討論下列主題與程式碼範例:
  • 控制陣列序列化
  • 序列化衍生的類別
  • 將陣列序列化為元素的順序
  • 序列化陣列
  • 控制序列化的類別使用 XmlRootAttribute 和 XmlTypeAttribute
  • 防止 [XmlIgnoreAttribute 的序列化
使用屬性控制 XML 序列化
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconcontrollingserializationbyxmlserializerwithattributes.asp

眭舑恅梒

Microsoft 知識庫 How To 文件提供完成特定工作的逐步指示。
315703如何: 使用 Visual Basic.NET 序列化為 XML 物件
316730如何: 序列化和還原序列化 XML Visual Basic.NET 中
也可以執行 XSL 轉換 (XSLT)、 查詢及使用 DOM,修改 XML 資料和序列化或利用 System.Xml 類別.NET Framework 中還原序列化 XML 資料。如需詳細資訊請參閱下列知識庫文件:
313651在.NET Framework 中的 XML 的藍圖

逐步解說

逐步解說提供教學迷你-課程,為您逐步解說使用 XML 序列化和還原序列化某些一般的應用程式開發案例。下列的連結會帶您逐步解說中的文件。
使用結構描述和序列化,以運用商務邏輯
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnexxml/html/xml04162001.asp

疑難排解

如果您遇到問題,並想取得協助,最佳開始的地方會是在 Microsoft 技術支援部 (PSS) 的網站:
http://support.microsoft.com
您有數個選項來尋找您問題的答案。可以 Microsoft 知識庫 」 中搜尋、 張貼您的問題或共用您的經驗,Microsoft 新聞群組上、 取得最新的 Service Pack 與新聞有關特定產品或與 Microsoft 產品支援部門連絡。

屬性

文章編號: 314150 - 上次校閱: 2007年5月18日 - 版次: 3.3
這篇文章中的資訊適用於:
  • Microsoft .NET Framework Class Libraries 1.0
  • Microsoft .NET Framework Class Libraries 1.1
關鍵字:?
kbmt kbarttyperoadmap kbinfo KB314150 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:314150
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。
依現狀不再更新的知識庫內容免責聲明
本文旨在說明 Microsoft 不再提供支援的產品。因此,本文係依「現狀」提供,不會再更新。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com