將如偏序列化方法 using System; using System.Collections.Generic; using System.Linq; using System.Text; //引入三個命名空間 using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; using System.IO; namespace StudentManager { public class SerializeObjectToString { //將Object類型對象(注:必須是可序列化的對象)轉換為二進制序列字符串 public string SerializeObject(object obj) { IFormatter formatter = new BinaryFormatter(); string result = string.Empty; using (MemoryStream stream = new MemoryStream()) { formatter.Serialize(stream, obj); byte[] byt = new byte[stream.Length]; byt = stream.ToArray(); //result = Encoding.UTF8.GetString(byt, 0, byt.Length); result = Convert.ToBase64String(byt); stream.Flush(); } return result; }
反序列化方法 //將二進制序列字符串轉換為Object類型對象 public object DeserializeObject(string str) { IFormatter formatter = new BinaryFormatter(); //byte[] byt = Encoding.UTF8.GetBytes(str); byte[] byt = Convert.FromBase64String(str); object obj = null; using (Stream stream = new MemoryStream(byt, 0, byt.Length)) { obj = formatter.Deserialize(stream); } return obj; } } }