在.NET中实现对象序列化

转载 2006年06月07日 09:26:00
自从有了XML以后,跨系统的数据交换变得越来越简单。.NET更把XML做为底层数据交换的基础,并在.NET框架中提供了强大的类库以增强XML的编程能力。这些类包含在System.Xml命名空间中。在跨系统的数据交换中,对象的序列化与反序列化是重中之重。.NET为此专门提供了一个System.Xml.Serialization命名空间用于对象的序列化。

  要了解XML的序列化可首先参考微软的介绍:
  ● Introducing XML Serialization
  ● XML and SOAP Serialization
  ● Roadmap for XML Serialization in the .NET Framework

   .NET通过使用特性Attribute控制对象的序列化。例如:
<XmlType("order")> _
Public Class Order

    
<XmlElement("id")> _
    
Public ID As String

    
<XmlArray("items"), XmlArrayItem("item")> _
    
Public OrderItems() As OrderedItem

End Class


Public Class OrderItem
    
<XmlElement("name")> _
    
Public ItemName As String
End Class


  被.NET序列化后的XML是:

<order>
    
<id>20050405</id>
    
<items>
        
<item>
            
<name>对象序列化</name>
        
</item>
    
</items>
</order>


  XmlType:可以应用于声明为Public的类、结构、枚举和接口。它定义了Xml类型的名字和命名空间。
  XmlElement:它定义了要序列化为XML元素的字段或属性。字段或属性必须声明为Public。
  XmlArray:它定义了要序列化为XML集合的字段或属性。字段或属性必须声明为Public。
  XmlArrayItem:定义了可以添加到集合中的派生类型。

  .NET还提供了其它的一些Attribute。全部的Attribut特性可以通过下面地址查看:
  ● Attributes That Control XML Serialization 
  如何使用这些Attribute,请查看:
  ● Controlling XML Serialization Using Attributes 


  有了这些Attribute,我们可以很容易的将对象序列化,但是由谁来完成呢?那就需要了解一下XmlSerializer了。ASP.NET 就是使用 XmlSerializer 类对 XML Web services 消息进行编码的。

  关于XmlSerializer 类请查看:
  ● XmlSerializer 类 
  ● XmlSerializer.Serialize 方法

   XmlSerializer的使用也非常简单:

        Dim serializer As New XmlSerializer(GetType(Order))
        
Dim writer As New StreamWriter(filename)
        
Dim o As New Order

        o.ID 
= “20050405
        
        
Dim item As OrderItem
        item.ItemName 
= “对象序列化”
        
        
Dim items(0As OrderItem
        items(
0= item
        
        o.OrderItems 
= items

        serializer.Serialize(writer, po)
        writer.Close()


  在使用XmlSerializer之前,可以先参考一下:
  ●XmlSerializer 常见问题疑难解答

在.NET中实现对象序列化

在.NET中实现对象序列化    自从有了XML以后,跨系统的数据交换变得越来越简单。.NET更把XML做为底层数据交换的基础,并在.NET框架中提供了强大的类库以增强XML的编程能力。这些类包含在S...
  • popkiler
  • popkiler
  • 2007年12月08日 14:58
  • 486

在.NET中实现对象序列化(转)

        自从有了XML以后,跨系统的数据交换变得越来越简单。.NET更把XML做为底层数据交换的基础,并在.NET框架中提供了强大的类库以增强XML的编程能力。这些类包含在System.Xml...
  • yagebu1983
  • yagebu1983
  • 2008年03月04日 16:44
  • 387

NET 中的对象序列化

.NET 中的对象序列化 摘要:为什么要使用序列化?最重要的两个原因是:将对象的状态保存在存储媒体中以便可以在以后重新创建出完全相同的副本;按值将对象从一个应用程序域发送至另一个应用程序域。例如,序列...
  • weinasi3252
  • weinasi3252
  • 2006年08月30日 13:22
  • 437

.NET中的对象序列化

使用对象序列化最重要的两个原因是:将对象的状态保存在存储媒体中以便可以在以后重新创建出完全相同的副本;按值将对象从一个应用程序域发送至另一个应用程序域。开发Ztetris的过程中考虑到游戏记录存储的问...
  • Ghoscorpion
  • Ghoscorpion
  • 2004年08月15日 15:26
  • 738

.net中的对象序列化

序列化就是将将对象的状态信息转换为可以存储或传输的形式的过程。 在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后, 可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。 ...
  • u011955860
  • u011955860
  • 2014年03月28日 14:31
  • 359

.NET 中的对象序列化

摘要:为什么要使用序列化?最重要的两个原因是:将对象的状态保存在存储媒体中以便可以在以后重新创建出完全相同的副本;按值将对象从一个应用程序域发送至另一个应用程序域。例如,序列化可用于在 ASP.NET...
  • xychen2008
  • xychen2008
  • 2007年05月04日 15:17
  • 342

什么是对象序列化?如何实现?什么情况下使用?

a)什么是对象序列化: 对象序列化可以将一个对象保存到一个文件,可以将通过流的方式在网络上传输,可以将文件的内容读取转化为一个对象。所谓对象流也就是将对象的内容流化,可以对流化后的对象进行读写操作,也...
  • JimboWonG
  • JimboWonG
  • 2017年02月07日 14:41
  • 684

Java 对象序列化详解以及实例实现和源码下载

Java中的序列化机制有两种实现方式: 一种是实现Serializable接口 另一种是实现Externalizable接口 区别: 实现Serializable接口 1 系统自动储存必要的...
  • u010156024
  • u010156024
  • 2015年03月16日 16:45
  • 1482

Serializable接口实现对象序列化

对象序列化就是把一个对象变为二进制的数据量的一种方法,通过对象序列化可以方便地实现对象的传输或存储. class Person2 implements Serializable { privat...
  • pengkv
  • pengkv
  • 2014年07月11日 16:38
  • 1442

.NET 对象序列化

原文:http://www.cnblogs.com/fengbuting/archive/2007/09/24/900257.html什么是序列化?  .net的运行时环境用来支持用户定义类型的流化的...
  • bobo_keke
  • bobo_keke
  • 2009年03月23日 17:55
  • 445
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在.NET中实现对象序列化
举报原因:
原因补充:

(最多只允许输入30个字)