VB 2010 (35) XML序列化

这篇博客介绍了如何使用VB 2010中的XmlSerializer类进行XML序列化和反序列化操作。通过示例展示了如何将对象序列化成XML文档,以及如何从XML文档反序列化回对象。具体涉及到FilmOrder类的实例化,以及如何将序列化结果输出到控制台和保存到文件中。
摘要由CSDN通过智能技术生成

        对象的序列化就是将该对象写入一个流中,如文件或套接字。也可以执行其逆过程:从流中读取对象,对对象进行反序列化。
这样可以把对象的数据保存在本地文件中,或者传送到网络上。
    System.Xml.Serialization名称空间包含的类和接口支持把对象序列化到XML,或者把XML反序列化到对象口要把对象序列化到文档或流中,可以使用XmISerializer类。、

XmlSerializer 类

https://docs.microsoft.com/zh-cn/dotnet/api/system.xml.serialization.xmlserializer?view=netframework-4.8

FilmOrder类:

Public Class FilmOrder
    Public Name As String
    Public FilmId As Integer
    Public Quantity As Integer

    Public Sub New()

    End Sub

    Public Sub New(ByVal name As String, _
                   ByVal filmID As Integer, _
                   ByVal quatity As Integer)
        Me.Name = name
        Me.FilmId = filmID
        Me.Quantity = quatity
    End Sub
End Class

控制台应用程序:

Imports System.Xml.Serialization
Module Module1

    Sub Main()

    ‘创建一个XmlSerializer实例,并在其构造函数中指定需要序列化的对象及其类型:
        Dim serialize As XmlSerializer = New XmlSerializer(GetType(FilmOrder))
   ’创建一个该类型的实例,并作为一个参数传递到XmISerializer的构造函数中。在比较复杂的应用程序中,可能需要使用客户端、数据库或其他数据源提供的数据创建这个实例:
        Dim MyFilmOrder As FilmOrder = New FilmOrder("Greese", 101, 10)
    ‘调用XmISerializer实例的Serialize方法,指定要序列化的对象写入哪个流(这里是Console;Out,显示在控制台窗口中.)以及要序列化的对象:
        serialize.Serialize(Console.Out, MyFilmOrder)

        Console.WriteLine()

        Console.Read()
    End Sub

End Module
运行这个模块,将生成下面的内容:
<?xml  version=”l . 0 "   encoding="IBM437" ?>
<FilmOrdar  xmlns : xsi = "http : //WWW.w3 .org/2001/XMLSchema-instance"
           xmlns : xsd="http : //www.w3 . Org/20 0l/XMLSchema">
  <Name>Grease</Name>
  <Filmld>101</Filmld>
  <Quantity>10</Quantity>
</FilmOrder>

这个输出结果说明了Serialize方法在序列化一个对象时所采取的默认方式:

  • 每个被序列化的对象都表示为一个与类同名的元素,在本例中是FilmOrder。
  • 序列化对象的每个数据成员都包含在以该数据成员命名的元素中。在本例中分别为Name、Filmld年口Quantity。

其他生成的内容包括:

  • XML的具体版本——在本例中是1.00
  • 使用的编码方式一在本例中是IBM4370
  • 用于描述序列化对象的架构——在本例中XML架构规范定义了两个模式http://www.w3.org/2001fXMLSchema- instance和http://www.w3.org/2001/XMLSchema.

            Serialize方法的第一个参数被重写,使之能够把XML序列化到文件(文件名用String类型指定)、Stream、TextWriter或者XmIWriter中。当序列化到Stream、TextWriter或XmIWriter时,Serialize方法的第3个参数是有效的。这个参数的类型是XmISerializerNamespaces,用于指定名称空间的列表,以限定生成的XML文档中使用的名称。      

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ngbshzhn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值