Serialize/Deserialize Classes into SQL Server Image Columns.

1. Add below name spaces


using System.Configuration;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;

2. Create an example class like below

      [Serializable]        // serialilzable attribute is must.
    public class marshaldata    {
       public byte[] filedata { get; set; }
       public string filename { get; set; }
    }

3. For serialization use below method. method parameter are test data.

public byte[] serializeData(byte[] data, string filename)
        {
            marshaldata mar = new marshaldata();
            mar.filedata = data;
            mar.filename = filename;

            BinaryFormatter bf = new BinaryFormatter();
            var ms = new System.IO.MemoryStream();
            bf.Serialize(ms, mar);
            return ms.ToArray();

        }

4. For deserialization use below method. method paramete are test data.

public void DeserializeData(byte[] data)
        {
            MemoryStream memStream = new MemoryStream();
            BinaryFormatter binForm = new BinaryFormatter();
            memStream.Write((byte[])data, 0, ((byte[])data).Length);
            memStream.Seek(0, SeekOrigin.Begin);
            marshaldata obj = (marshaldata)binForm.Deserialize(memStream);
            string filename = obj.filename;
            byte[] filedata = obj.filedata;
        }

No comments:

Post a Comment