using System.Runtime.Serialization.Formatters.Binary; public static string SerializeObject(object data) { BinaryFormatter formatter = new BinaryFormatter(); using (MemoryStream ms = new MemoryStream()) { //this is the key: serialize formatter.Serialize(ms, data); using (TextReader tr = new StreamReader(ms)) { //set the position ms.Seek(0, SeekOrigin.Begin); return tr.ReadToEnd(); } } } public static object DeSerializeObject(string data) { BinaryFormatter formatter = new BinaryFormatter(); using (MemoryStream ms = new MemoryStream(Encoding.Default.GetBytes(data))) { //set the position ms.Seek(0, SeekOrigin.Begin); return formatter.Deserialize(ms); } }Here is how to use:
//prepare the object List<int> lstInteger = new List<int>(3) {1, 2, 3}; //serialize object string strResult = SerializeObject(lstInteger); //deserialize object List<int> lstResult = DeSerializeObject(strResult);You can replace the MemoryStream by other Stream classes.
PS: You will get an error message if you try to use DataTable.
No comments:
Post a Comment