- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
有些应用程序在退出的时候,会将一些设置值写入到文件里,以便下次程序启动时调用,这个文件统称为配置文件。例如:Windows的扫雷程序,在每次启动的时候,都会出现在上次关闭的位置,就是因为扫雷程序在退出的时候将当前位置写入到配置文件里。
早期的配置文件的实现有两种方法。一是INI文件,在Win32的API中还专门有读写INI文件的API函数;另一个是注册表,这也是很多程序的首选,在版本较新的扫雷程序就是利用注册表实现配置函数。不过,上述的两种方法都有其的局限性。INI文件,结构简单,容易编辑,有容量的上限(64K)。注册表虽然没有容量的限制,不过读写注册表还是一件很麻烦的事,而且还容易在注册表中产生冗余(删除程序的时候还得操作注册表),也有和其他程序想冲的可能。最主要的问题就是,无论是INI文件还是注册表都只能实现简单的配置读写,很难实现类似对象的读写,因为他们的条目之间是平行的,而不是类似树状的节点结构(注册表虽能实现树状结构,但是读写还是比较麻烦,也不太安全)。
而利用XML文件就能很好的弥补上面的不足。首先是文件型的,不会读写注册表,不会有安全的后顾之忧;其次没有文件容量大小的限制,而且XML文件天生是树状结构,很适合实现对象的读写。目前XML文件的应用越来越广泛,已经成为主流,你随便打开一个程序所在的目录,很少不看到XML文件的,而且主流的开发软件都有读写XML的库文件。操作XML文件现在是很便利的一件事。
XML文件序列化是XML技术的一个分支,他可以把程序中的一个对象(例如自己编写的类的一个实例)序列化成XML文件。他也可以把XML文件反序列化为程序中的一个对象。
有关XML序列化比较好的文章,我个人感觉下面这篇比较好。
NET对象的XML序列化和反序列化
这就给了我们的一个思路,我们可以把要读写的配置封装在自己编写的配置类中,然后通过XML序列化,来实现配置类和XML文件的转化。
例如:下面这个例子就是利用XML序列化在类对象和XML之间转换,用的是C#
下面例子中的xmlschema描述了一个简单的人力资源信息,其中包含了xml的大部分格式,如xml元素相互嵌套,xml元素既有元素值,又有属性值。
1.待序列化的类层次结构
[XmlRoot(humanResource)]publicclassHumanResource
{
privateintm_record=0;
privateWorker[]m_workers=null;
[XmlAttribute(AttributeName=record)]publicintRecord
{
get{returnm_record;}
set{m_record=value;
}
[XmlElement(ElementName=worker)]publicWorker[]Workers
{
get{returnm_workers;}
set{m_workers=value;}
}
}
publicclassWorker
{
privatestringm_number=null;
privateInformationItem[]m_infoItems=null;
[XmlAttribute(number)]publicstringNumber
{
get{returnm_number;}
set{m_number=value;}
}
[XmlElement(infoItem)]publicInformationItem[]InfoItems
{
get{returnm_infoItems;}
set{m_infoItems=value;}
}
}
publicclassInformationItem
{
privatestringm_name=null;
privatestringm_value=null;
[XmlAttribute(AttributeName=name)]publicstringName
{
get{returnm_name;}
set{m_name=value;}
}
[XmlText]publicstringValue
{
get{returnm_value;}
set{m_value=value;}
}
}
2.序列化生成的xm
最近下载
- 2018年九年级英语专项练习—定语从句和宾语从句(精编-带答案).doc VIP
- 部编版五年级语文上册第四单元《习作:二十年后的家乡》教案及反思(教案).pdf VIP
- (高清版)DB33∕T 2536-2022 方竹栽培技术规程.pdf VIP
- E+H超声波液位计FMU30系列说明中文版、.pdf VIP
- 部编版2年级道德与法治上册课本教材(高清扫描版).pdf VIP
- 三年级安全教育教案(山东省地方课程).pdf VIP
- SL 282-2018 混凝土拱坝设计规范.docx VIP
- 【MOOC】《研究生英语科技论文写作》(北京科技大学)中国大学MOOC慕课答案.docx VIP
- 国家建筑标准设计图集20S515 钢筋混凝土及砖砌排水检查井.pdf VIP
- 22D701-3电缆桥架安装(26.9MB)(26.85MB)5ce2e72e69780631(1).pdf VIP
文档评论(0)