WebService的序列化方法

来源:互联网 发布:windows徽标键失灵 编辑:程序博客网 时间:2024/06/06 08:47
  
    ''' <summary>
    ''' 将一个可序列话的对象进行序列化操作,并以二进制形式返回
    ''' </summary>
    ''' <param name="dsResult">要进行序列化的对象</param>
    ''' <returns>二进制</returns>
    ''' <remarks></remarks>
    ''' <author>Johnnzy</author>
    Public Shared Function BinarySerialize(ByVal dsResult As DataSet) As Byte()
        
Dim bytes As Byte()
        
Dim bf As System.Runtime.Serialization.IFormatter = New BinaryFormatter()
        
Dim ms As System.IO.MemoryStream = New System.IO.MemoryStream()
        
Try
            dsResult.RemotingFormat 
= SerializationFormat.Binary
            bf.Serialize(ms, dsResult)
            bytes 
= ms.ToArray()
            ms.Close()
            
Return bytes
        
Catch ex As Exception
            
Throw ex
        
End Try
    
End Function


    
''' <summary>
    ''' 将一个二进制文件进行反序列化操作,并以对象形式返回
    ''' </summary>
    ''' <param name="bytes">原二进制文件</param>
    ''' <returns>一个可序列化的对象</returns>
    ''' <remarks></remarks>
    ''' <author>Johnnzy</author>
    Public Shared Function BinaryDeserialize(ByVal bytes As Byte()) As DataSet
        
Dim dsResult As DataSet
        
Dim obj As Object
        
Dim bf As System.Runtime.Serialization.IFormatter = New BinaryFormatter()
        
Dim ms As System.IO.MemoryStream = New System.IO.MemoryStream(bytes)
        
Try
            obj 
= bf.Deserialize(ms)
            dsResult 
= CType(obj, DataSet)
            ms.Close()
            
Return dsResult
        
Catch ex As Exception
            
Throw ex
        
End Try
    
End Function

原创粉丝点击