54 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			VB.net
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			VB.net
		
	
	
	
	
	
| Imports System.IO
 | |
| Imports System.Xml
 | |
| Imports System.Xml.Serialization
 | |
| Imports System.Runtime.Serialization.Formatters.Binary
 | |
| 
 | |
| ''' <summary>
 | |
| ''' Contains function for serializing/deserializing an object to and from a byte array.
 | |
| ''' </summary>
 | |
| Public Class ObjectPacker
 | |
| 
 | |
|     ''' <summary>
 | |
|     ''' Serializes an object to a byte array.
 | |
|     ''' </summary>
 | |
|     ''' <param name="obj">The object to be serialized.</param>
 | |
|     Public Shared Function GetBytes(ByVal obj As Object) As Byte()
 | |
|         If obj.GetType Is GetType(Byte).MakeArrayType Then
 | |
|             Return CType(obj, Byte())
 | |
|         End If
 | |
|         Dim ret() As Byte = Nothing
 | |
|         Dim blnRetAfterClose As Boolean = False
 | |
|         Dim ms As New MemoryStream()
 | |
|         Dim bf As New BinaryFormatter()
 | |
|         Try
 | |
|             bf.Serialize(ms, obj)
 | |
|         Catch ex As Exception
 | |
|             blnRetAfterClose = True
 | |
|         Finally
 | |
|             ms.Close()
 | |
|         End Try
 | |
|         If blnRetAfterClose Then Return ret
 | |
|         ret = ms.ToArray()
 | |
|         Return ret
 | |
|     End Function
 | |
| 
 | |
|     ''' <summary>
 | |
|     ''' Deserializes an object from a byte array.
 | |
|     ''' </summary>
 | |
|     ''' <param name="byt">The byte array from which to obtain the object.</param>
 | |
|     Public Shared Function GetObject(ByVal byt() As Byte) As Object
 | |
|         Dim ms As New MemoryStream(byt, False)
 | |
|         Dim bf As New BinaryFormatter()
 | |
|         Dim x As Object
 | |
|         Try
 | |
|             x = bf.Deserialize(ms)
 | |
|         Catch ex As Exception
 | |
|             x = byt
 | |
|         Finally
 | |
|             ms.Close()
 | |
|         End Try
 | |
|         Return x
 | |
|     End Function
 | |
| 
 | |
| End Class
 | 
