65.9K
CodeProject 正在变化。 阅读更多。
Home

序列化

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2013 年 10 月 11 日

CPOL

2分钟阅读

viewsIcon

6565

序列化的过程是将对象转换为一种形式,以便可以通过网络传输或放置在存储位置。

序列化的过程是将对象转换为一种形式,以便可以通过网络传输或放置在存储位置。存储位置可以是物理文件、数据库或 ASP.NET 缓存。对象的状态以某种形式保存,以便稍后可以重新构造它,这被称为反序列化。

序列化有三种格式

  1. 二进制序列化 - 轻量且紧凑,用于 Remoting
  2. SOAP 序列化 - 具有互操作性,使用 SOAP 且用于 Web 服务
  3. XML 序列化 - 自定义序列化

在本文中,我将提供一个 XML 序列化的示例。

XML 序列化

对于 XML 序列化,每个公共成员都需要一个属性,这是必要的。它只能序列化公共成员。

它也被称为浅序列化。

以下是在访问数据库数据时进行序列化的代码。

 Dim cnnConnection As New SqlConnection()
            Try
                '声明局部变量
                Dim drdDetails As SqlClient.SqlDataReader = Nothing
                Dim objSer As New BLL.SerCollection
                Dim cmdDetails As SqlCommand = Nothing

                cnnConnection.ConnectionString = System.Configuration.ConfigurationManager.ConnectionString["ConnectionString"].DBConnectionString

                cmdDetails = New SqlCommand(PROC_SELECT_FOR_SEARCH, cnnConnection)

                '设置超时并将参数添加到存储过程
                cmdDetails.CommandTimeout = 30
                cmdDetails.CommandType = CommandType.StoredProcedure
                cmdDetails.Parameters.Add("@Search", SqlDbType.VarChar).Value = strSearch
             
                '打开连接并获取查询结果
                cnnConnection.Open()

                Dim XMLR As System.Xml.XmlReader = cmdDetails.ExecuteXmlReader

                Dim serializer As XmlSerializer = New XmlSerializer(GetType(BLL.SerCollection))
                objSer  = CType(serializer.Deserialize(XMLR), BLL.SerCollection)

                Return objSer
            Catch ex As Exception
                '异常块
                Throw New DBException(ex, "Get 方法失败")

                Return Nothing
            Finally
                cnnConnection.Close()
            End Try 
 
© . All rights reserved.