【 在 coreman 的大作中提到: 】
: 这是一段从XML文件中提取内容填充到configObject类成员变量的代码,大概有近100个else if比较分支
: 请问如何优化一下,减少代码量
: using (XmlReader xr = XmlReader.Create(configXMLReader, settings))
: ...................
这是典型的序列化-反序列化的问题。
需要一组泛型函数。我做过一组JSON的泛型。 xml应该是差不多的。
泛型,就是不依赖具体的类型,原理是需要一组模板。
写模板是一件很麻烦的事,可以两个解决方案:
1.利用数据库的数据字典。因为序列化-反序列化的用途,主要3个:
1.1 对数据库进行ORM,Object Relational Mapping
1.2 在网络传输Object
1.3 在文件里存储Object
2.自己写元数据,描述数据结构,然后生成Object和对应的Template。
当Object与数据库无关,或对应一个SQL语句涉及多个表或不涉及任何表的时候,需要2法。
都不行,就需要手写模板。
有了这一组模板,就可以用于序列化,反序列化,ORM及所有要用到的场合。
https://www.newsmth.net/nForum/#!article/CPlusPlus/413639
跟你的问题是一类。对于你的问题,就需要两个函数:
1.to_xml(),Object to xml,序列化
2.from_xml(),xml to Object,反序列化。
--
修改:ylh1969 FROM 221.221.53.*
FROM 221.221.53.*