Serialisasi dan Deserialisasi Object di ASP.NET
Beberapa hari yang lalu saya dihadapkan dengan permasalahan penyimpanan object kedalam penyimpanan external. Untuk disimpan object tersebut harus diserialisasikan terlebih dahulu. Setelah mencari di internet saya menemukan beberapa cara yang mudah untuk melakukannya, berikut saya tuliskan source code untuk melakukan serialisasi dan deserialisasi object:
VB.NET
Imports System.Runtime.Serialization.Formatters.Binary Imports System.IO Public Class Serializer ' Mengubah object ke Byte Public Shared Function ObjectToByteArray(ByVal obj As [Object]) As Byte() If obj Is Nothing Then Return Nothing End If Dim bf As New BinaryFormatter() ' Menulis object sebagai memory stream Using ms As New MemoryStream() bf.Serialize(ms, obj) Return ms.ToArray() End Using End Function ' Mengubah Byte kembali ke Object Public Shared Function ByteArrayToObject(ByVal arrBytes As Byte()) As [Object] Using memStream As New MemoryStream() Dim binForm As New BinaryFormatter() memStream.Write(arrBytes, 0, arrBytes.Length) memStream.Seek(0, SeekOrigin.Begin) Dim obj As [Object] = DirectCast(binForm.Deserialize(memStream), [Object]) Return obj End Using End Function End Class
C#
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
public class Serializer
{
// Mengubah object ke Byte
public static byte[] ObjectToByteArray(Object obj)
{
if (obj == null) {
return null;
}
BinaryFormatter bf = new BinaryFormatter();
// Menulis object sebagai memory stream
using (MemoryStream ms = new MemoryStream()) {
bf.Serialize(ms, obj);
return ms.ToArray();
}
}
// Mengubah Byte kembali ke Object
public static Object ByteArrayToObject(byte[] arrBytes)
{
using (MemoryStream memStream = new MemoryStream()) {
BinaryFormatter binForm = new BinaryFormatter();
memStream.Write(arrBytes, 0, arrBytes.Length);
memStream.Seek(0, SeekOrigin.Begin);
Object obj = (Object)binForm.Deserialize(memStream);
return obj;
}
}
}
Jika ada pertanyaan atau komentar silahkan isi bagian comment, saya akan jawab semampu saya.
Comments [1]