[原譯]YAXLib—- XML序列化神器

來源:互聯網
上載者:User

今天早上翻譯了Yet-Another-XML-Serialization-Library-for-the-NET,將近4個小時把30頁的文檔翻譯完了。因為文章很長。重新排版壓力太大。。我把翻譯好的做成了pdf,所以本文只列出前兩部分。如果不符合規則。請管理員撤下。

文檔下載:XML序列化神器

整個文檔目錄如下:

目錄

1介紹... 1

2 為什麼使用YAXLib. 2

3 YAXLib使用指南... 2

3.1 基本的使用和格式化... 2

3.2 序列化集合類的對象... 5

3.3 序列化字典類... 8

3.4 序列化嵌套的對象... 13

3.5 添加xml注釋... 17

4 還原序列化和錯誤處理機制... 18

5 選擇進行序列化的域... 21

6 定義枚舉成員的別名... 22

7 序列化多維陣列... 24

8 通過基類或介面引用來序列化對象... 25

9 保留Null 參考標識... 27

10 格式化資料項目... 28

11 多級還原序列化... 31

12 沒有預設建構函式的類的問題... 31

13 有自引用類的問題... 32

14 YAXLib特性... 32

15 YAXLib異常類... 33

16 什麼時候不要使用YAXLib. 34

17 許可... 34

1 介紹

在本文中,會把要提到的XML序列化庫叫做YAXLib,我們知道。.Net 還是提供了一些序列化功能的,尤其是XmlSerializer,該類被程式員廣泛使用用來序列化對象成XML,當然,還原序列化也是可以的。我認為XmlSerializer類的問題有幾下幾點

  1. 程式員不能自由的選擇產生的xml的結構
  2. 不支援序列化一些集合類,比如Dictionary<,> 或者IEnumerable<>的屬性
  3. 當還原序列化的時候,如果缺失了一些域,則還原序列化失敗,這就使得用來儲存一ixekeyi被使用者編輯的設定檔變得不合適了。

 

2 為什麼使用YAXLib

YAXLib解決上述問題的特點

  1. 程式員可以決定xml檔案的結構,一個屬性可以是一個子項目,或者是其他屬性的屬性,或者是一個在類中沒有對應屬性的元素。
  2. 集合類也可以被序列化成一個逗號分隔(也可以是其他任何分隔字元)的資料項目列表,而且。為Dictionary<,>對象實現了一些特殊的格式化功能,這樣,使得程式員可以完全控制產生的xml檔案的結構
  3. 他支援System.Collections.Generic 命名空間中的所有泛型集合類(像DictionaryHashSetLinkedListListQueue,SortedDictionarySortedList, 和 Stack) 和在System.Collections  命名空間中的非泛型集合類( ArrayListBitArrayHashtableQueueSortedList, 和 Stack)非泛型集合類可以包含多種不同的對象,而且,庫還支援序列化和還原序列化一維,多維,不規則的數組。
  4. 支援通過對基類/介面的引用,實現對一些對象集合的序列化和還原序列化。
  5. 支援多級還原序列化
  6.  程式員可以為產生的xml提供注釋
  7. 當進行還原序列化的時候,程式員可以選擇性對於那些與類的屬性相關,但沒有出現在xml檔案中的資料應該如何處理。這種情況下可以看錯是一個錯誤,然後類庫拋出一些異常,或者記錄錯誤,或者可以被看成一個警告,然後用程式員預定義的值賦給對應的屬性,而且,程式可以可以選擇忽略這個問題,相關的異常將既不拋出也不作任何記錄。請查看保留Null 參考標識那一節 看看什麼時候可以忽略孤立的資料也許對你有協助
  8. 程式員可以自己選擇錯誤處理規則,對於資料敏感的應用程式,程式員可以選擇在任何異常的情況下,庫都應該拋出並且記錄異常,對於其他的一些情況(比如要求不那麼高的設定檔的儲存),程式員可以選擇把異常僅僅看成一個警告,僅僅記錄一下,讓程式的其他部分繼續運行。

文檔下載:XML序列化神器

著作權聲明:本文由http://leaver.me 翻譯,歡迎轉載分享。請尊重作者勞動,轉載時保留該聲明和作者部落格連結,謝謝!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.