整个文档目录如下:
目录
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 保留空引用标识... 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类的问题有几下几点
程序员不能自由的选择生成的xml的结构
不支持序列化一些集合类,比如Dictionary<,> 或者IEnumerable<>的属性
当反序列化的时候,如果缺失了一些域,则反序列化失败,这就使得用来存储一ixekeyi被用户编辑的配置文件变得不合适了。
2 为什么使用YAXLib
YAXLib解决上述问题的特点
程序员可以决定xml文件的结构,一个属性可以是一个子元素,或者是其他属性的属性,或者是一个在类中没有对应属性的元素。
集合类也可以被序列化成一个逗号分隔(也可以是其他任何分隔符)的数据项列表,而且。为Dictionary<,>对象实现了一些特殊的格式化功能,这样,使得程序员可以完全控制生成的xml文件的结构
他支持System.Collections.Generic 命名空间中的所有泛型集合类(像Dictionary, HashSet, LinkedList, List, Queue,SortedDictionary, SortedList, 和 Stack) 和在System.Collections 命名空间中的非泛型集合类( ArrayList, BitArray, Hashtable, Queue, SortedList, 和 Stack)非泛型集合类可以包含多种不同的对象,而且,库还支持序列化和反序列化一维,多维,不规则的数组。
支持通过对基类/接口的引用,实现对一些对象集合的序列化和反序列化。
支持多级反序列化
程序员可以为生成的xml提供注释
当进行反序列化的时候,程序员可以选择性对于那些与类的属性相关,但没有出现在xml文件中的数据应该如何处理。这种情况下可以看错是一个错误,然后类库抛出一些异常,或者记录错误,或者可以被看成一个警告,然后用程序员预定义的值赋给对应的属性,而且,程序可以可以选择忽略这个问题,相关的异常将既不抛出也不作任何记录。请查看保留空引用标识那一节 看看什么时候可以忽略孤立的数据也许对你有帮助
程序员可以自己选择错误处理规则,对于数据敏感的应用程序,程序员可以选择在任何异常的情况下,库都应该抛出并且记录异常,对于其他的一些情况(比如要求不那么高的配置文件的存储),程序员可以选择把异常仅仅看成一个警告,仅仅记录一下,让程序的其他部分继续运行。
特别说明:
本站所有资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!
本站提供的普通下载点可能造成多线程类的软件无法下载,建议直接点击或另存为下载!
如有侵犯您的版权,请及时联系513175919#qq.com(#换@),我们将尽快处理。