控件中国网现已改版,您看到的是老版本网站的镜像,系统正在为您跳转到新网站首页,请稍候.......
中国最专业的商业控件资讯网产品咨询电话:023-67870900 023-67871946
产品咨询EMAIL:SALES@COMPONENTCN.COM

用.NET框架实现序列化

作者:csdn 出处:CSDN 2010年04月07日 阅读:

控件中国网转载自CSDN:用.NET框架实现序列化

序列化是将一个对象保存到存储介质上或者将对象进行转换使之能够在网络上传送的行为。在一个对象被序列化之后,你会想要将它反序列化,也就是将数据重新转换为可用的对象的行为。这种类型的功能被用在一个对象必须被从一个上下文封送到另一个上下文的时候,例如当对象跨越App域的时候。另外一个例子是Web服务——对象在服务器上被序列化,通过网络被(封送或)发送到的客户端,然后被反序列化成有用的对象。

  从二进制到XML,.NET框架为开发人员提供了很多序列化选项,甚至允许开发人员创建自己的序列化例程。在本文中,我将着重讨论XML的序列化,并告诉你如何利用这一内置的功能。

  XML序列化

  .NET框架提供的一种形式的序列化是XML序列化。在这种类型的序列化里,对象状态被以XML格式保存。这使得被序列化的对象能够被不同的系统取得并修改,甚至是那些不是用.NET编写的系统。另外一个优势是被序列化的对象对于人来说是可读和可写的——因此更新对象的方式莫过于打开写字板更改其值。

  XML序列化常常被来远程控制项目和Web服务项目里,虽然你可能会在别的地方发现它,比如DataSet封送。在与Xpath查询和Predicate方法一起使用的时候,XML序列化能够被用来实现面向对象的数据库——我会在今后的文章里谈这方面的内容。

  使用XML序列化

  在.NET框架里利用内置的XML序列化方法相对较为容易。你只需要熟悉一些类和属性就可以开始使用简单的XML序列化了:

  System.Xml.Serialization命名空间:含有使用XML序列化所需要的类和功能。这个命名空间应该被放在使用XML序列化的类的顶部的一个“using”命令里。

  XmlSerializer类:提供将对象序列化和反序列化的功能。

  XmlIgnore属性:告诉XmlSerializer类跳过你不希望序列化的成员。

  这个列表只不过让你对序列化有一个初步的了解。还有更多的对象可以供你在使用XML序列化的时候使用。

  列表A是将Customer对象序列化的一个简单例子。这个Customer对象在下载文件的示例应用程序里被定义。

  列表A   Customer customer = newCustomer();
  customer.FirstName = "Zach";
  customer.LastName = "Smith";
  XmlSerializer serializer = newXmlSerializer(typeof(Customer));
  StringWriter writer = newStringWriter();
  serializer.Serialize(writer, customer);
  Console.WriteLine(writer.ToString());
  正如你看到的,XML序列化是一个很简单的过程。我们只需要创建一个需要被序列化的对象,创建用于这种类型对象的XmlSerializer,并调用XmlSerializer.Serialize。被序列化的对象然后被写到提供的Stream里——在本文中是一个叫做“writer”的StringWriter。

  如果你看看被序列化的对象,你会注意到它很容易读懂。下面就是被序列化的Customer对象的内容Smith
Zach


本文由控件中国网转载

热推产品

  • ActiveReport... 强大的.NET报表设计、浏览、打印、转换控件,可以同时用于WindowsForms谀坔攀戀Forms平台下......
  • AnyChart AnyChart使你可以创建出绚丽的交互式的Flash和HTML5的图表和仪表控件。可以用于仪表盘的创......
首页 | 新闻中心 | 产品中心 | 技术文档 | 友情连接 | 关于磐岩 | 技术支持中心 | 联系我们 | 帮助中心 Copyright-2006 ComponentCN.com all rights reserved.重庆磐岩科技有限公司(控件中国网) 版权所有 电话:023 - 67870900 传真:023 - 67870270 产品咨询:sales@componentcn.com 渝ICP备12000264号 法律顾问:元炳律师事务所 重庆市江北区塔坪36号维丰创意绿苑A座28-5 邮编:400020
在线客服
在线客服系统
在线客服
在线客服系统