- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
闪客教育 浅谈XML与对象的序列化与反序列化
浅谈XML与对象的序列化与反序列化
这篇文章主要讲述XML与对象的序列化与反序列化。并且会附上一些简单的序列化与反序列化方法,供大家使用。
假设我们在一个Web项目中有这样两个类
public class Member
{
public string Num { get; set; }
public string Name { get; set; }
}
public class Team
{
public string Name;
public ListMember Members { get; set; }
假设我们需要把Team类的一个实例POST到一个URL,
当然,使用Form隐藏域提交就可以完成该功能。
如果该Team涵概条数据呢?
为了辨别每一个Member,我们得给参数的名字加上后缀。这就要一大串的隐藏域来完成:
!--使用Razor来演示--@model Team
form id=submitForm action=/team method=post
input type=hidden name=TeamName value=@Model.Name /
input type=hidden name=MemberNum1 value=@Model.Members[0].Num /
input type=hidden name=MemberName1 value=@Model.Members[0].Name /
...!--省略28X2个input标签--
input type=hidden name=MemberNum30 value=@Model.Members[29].Num /
input type=hidden name=MemberName30 value=@Model.Members[29].Name /
/form
script type=text/javascript
document.getElementById(submitForm).submit();
/script
还敢想象一下如果Team再复杂一些,嵌套再多一些的状况么?
呃,即使你愿意这么传数据,对方看到一坨参数名就够头疼了。
我们都知道对象是不能在网络中直接传输的,不外尚有补救的方式。
XML(Extensible Markup Language)可扩展标记语言,本身就被设计用来存储数据,任何一个对象都可以用XML来描述。以Team类为例:
?xml version=1.0 encoding=utf-8?
Team xmlns:xsi=/2001/XMLSchema-instance xmlns:xsd=/2001/XMLSchema
NameDevelopment/Name
Members
Member
Num001/Num
NameMarry/Name
/Member
Member
Num002/Num
NameJohn/Name
/Member
/Members
/Team
这样一个XML文档就显露了Team一个实例。
聪明的看官应该已经想到,XML是可以作为对象信息的载体在网络中传输,因为它是文本形式的。
怎么进行XML文档与对象的相互转换呢?
XmlSerializer类就是干这个活的。
命名空间:System.Xml.Serialization
程序集:System.Xml(在 system.xml.dll 中)
现在这里展示了一个提供序列化与反序列化方法的EncodeHelper类。
Deserialize方法将XML字符串转换为指定类型的对象;
Serialize方法则将对象转换为XML字符串。
/// summary
/// 提供xml文档序列化 反序列化
/// /summary
public sealed class EncodeHelper
{
/// summary
/// 反序列化XML字符串为指定类型
/// /summary
public static object Deserialize(string Xml, Type ThisType)
{
XmlSerializer xmlSerializer = new XmlSerializer(ThisType);
object result;
try
{
您可能关注的文档
- 销售团队建设培训资料246712540.doc
- 销售培训 蓝调初稿.doc
- 销售家具基础知识.doc
- 销售培训_蓝调初稿.doc
- 销售总监聘用合同试行稿123.doc
- 销售城堡10.ppt
- 销售技巧和话术2358389.doc
- 销售技能培训手册.doc
- 销售支持部目标责任书.doc
- 销售服务技巧培训.ppt
- 2025年人教版一年级上册数学期中综合检测试卷及答案 (1).pptx
- 【9历期末】安徽省安庆市2024-2025学年九年级上学期期末历史试题(含解析).docx
- 【9历期中】安徽省淮北市“五校联考”2024-2025学年九年级上学期期中历史试题(含解析).docx
- 2025年部编版五年级上册语文第七单元综合检测试卷及答案.pptx
- 2025年人教版九年级上册数学第二十四章圆【基础提升专题】圆中利用转化思想求角度.pptx
- 2025年人教版九年级上册数学第二十一章综合检测试卷及答案.pptx
- 2025年人教版一年级上册数学第五单元综合检测试卷及答案 (1).pptx
- 2025年人教版一年级上册数学期末质量监测试卷及答案 (1).pptx
- 【9历期末】安徽省滁州市天长市2024-2025学年部编版九年级上学期1月期末历史试题.docx
- 2025年部编版九年级上册历史知识清单.docx
文档评论(0)