在.NET中实现对象序列化(转)
2008-03-04 16:44
465 查看
自从有了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 OrderClass Order
<XmlElement("id")> _
Public ID As String
<XmlArray("items"), XmlArrayItem("item")> _
Public OrderItems() As OrderedItem
End Class
Public Class OrderItemClass 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(0) As OrderItem
items(0) = item
o.OrderItems = items
serializer.Serialize(writer, po)
writer.Close()
要了解XML的序列化可首先参考微软的介绍:
● Introducing XML Serialization
● XML and SOAP Serialization
● Roadmap for XML Serialization in the .NET Framework
.NET通过使用特性Attribute控制对象的序列化。例如:
<XmlType("order")> _
Public Class OrderClass Order
<XmlElement("id")> _
Public ID As String
<XmlArray("items"), XmlArrayItem("item")> _
Public OrderItems() As OrderedItem
End Class
Public Class OrderItemClass 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(0) As OrderItem
items(0) = item
o.OrderItems = items
serializer.Serialize(writer, po)
writer.Close()
相关文章推荐
- 在.Net中通过序列化和反序列化实现对象实例化
- [Serializable]在C#中的作用——实现.NET对象序列化
- .Net网络通讯编程[利用Socket实现字串、文件、序列化对象传输]--类设计1
- .Net网络通讯编程[利用Socket实现字串、文件、序列化对象传输]--使用封装的网络服务1[使用IE浏览本页]
- .NET 插件系统框架设计(二) 使用对象序列化实现自定义配置文件管理
- .Net网络通讯编程[利用Socket实现字串、文件、序列化对象传输]--使用封装的网络服务2
- 在.NET中实现对象序列化
- 在.NET中实现对象序列化
- .Net网络通讯编程[利用Socket实现字串、文件、序列化对象传输]--使用封装的网络服务2[使用IE浏览本页]
- [.net 面向对象程序设计进阶] (11) 序列化(Serialization)(三) 通过接口 IXmlSerializable 实现XML序列化 及 通用XML类
- .Net网络通讯编程[利用Socket实现字串、文件、序列化对象传输]--类设计2
- .Net网络通讯编程[利用Socket实现字串、文件、序列化对象传输]--使用封装的网络服务3[聊天室]
- .Net网络通讯编程[利用Socket实现字串、文件、序列化对象传输]--使用封装的网络服务3[聊天室][使用IE浏览本页]
- 在.NET中实现对象序列化
- .Net网络通讯编程[利用Socket实现字串、文件、序列化对象传输]--使用封装的网络服务4[聊天室]
- 在.NET中实现对象序列化(转)
- .Net网络通讯编程[利用Socket实现字串、文件、序列化对象传输]--使用封装的网络服务1
- .Net网络通讯编程[利用Socket实现字串、文件、序列化对象传输]--类设计1[使用IE浏览本页]
- .Net网络通讯编程[利用Socket实现字串、文件、序列化对象传输]--类设计2[使用IE浏览本页]
- 在.NET中实现对象序列化