In WCF, sometimes we get a ByteArray as an output data contract and we want to deserialize that ByteArray into a DataTable.
Here we could get an idea how we can deserialize a ByteArray into DataTable. DataTable becomes useful int the situations when we want to save data into database using DataAdapter by passing a DataSet.
In this code, we create a MemoryStream object by passing byte array and then using BinaryFormatter, we can directly deserialize MemoryStream object into DataTable.
private DataSet DeserailizeByteArrayToDataSet(byte[] byteArrayData) { DataSet tempDataSet = new DataSet(); DataTable dt; // Deserializing into datatable using (MemoryStream stream = new MemoryStream(byteArrayData)) { BinaryFormatter bformatter = new BinaryFormatter(); dt = (DataTable)bformatter.Deserialize(stream); if (dt != null) { foreach (DataRow row in dt.Rows) { Console.WriteLine("----------------------"); Console.WriteLine("PostalCode:" + row["POSTAL_CODE"]); Console.WriteLine("CountryCode:" + row["COUNTRY_CODE"]); Console.WriteLine("ProcessNumber:" + row["PROCESS_NUMBER"]); Console.WriteLine("ProcessStatus:" + row["PROCESS_STATUS"]); Console.WriteLine("TimeStamp:" + row["TIMESTAMP"]); Console.WriteLine("----------------------"); } } } // Adding DataTable into DataSet tempDataSet.Tables.Add(dt); return tempDataSet; }
|
Thanks...