天天看点

Xsd: Xml序列化、反序列化的利器

下面讲述根据xml生成对应序列化反序列化类的过程,xml需要首先转化为xsd,然后再生成为实体类。其中,xsd是xml schema definition的缩写。

cd到目标目录(此次测试目标目录是d盘);

​​

Xsd: Xml序列化、反序列化的利器

首先使用xsd命令生成xsd,格式是xsd + xml文件,默认就是会在当前目录下生成xsd文件(此次测试,执行命令后将会在d盘根目录下生成同名的xsd文件;

Xsd: Xml序列化、反序列化的利器

接着是生成实体类:命令格式是xsd + xsd文件,默认会在当前目录下生成.cs的类文件;

Xsd: Xml序列化、反序列化的利器

1.使用xsd生成的父节点的类型是数组类型,不方便增加子项,需要统一修改为list<t>,同时直接new成实例,这样操作方便;尝试tolist但是发现无法真正的的插入到元数组中,我理解tolist()方法其实是新建立了一个list对象,所有的操作针对新建的list,除非再次重新toarray();

2.序列化的filestream无法和反序列化的filestream共享,反序列化应用完成后,一定需要close,序列化的时候再new一个新的filestream,然后调用serialize方法,否则将会以apppend的方式,将root对象添加到xml文件的底部;