C#中對象的序列化與還原序列化,是一項很常用的技術,對於對象的儲存,傳輸等十分有用。
這裡有兩個很實用的序列化與還原序列化的方法,是我從網友裡的得到的,介紹給大家。
以下是要用到兩個方法:
/// <summary>
/// 序列化為二進位位元組數組
/// </summary>
/// <param name="request">要序列化的對象 </param>
/// <returns>位元組數組 </returns>
public byte[] SerializeBinary(object request)
{
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter serializer = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
System.IO.MemoryStream memStream = new System.IO.MemoryStream();
serializer.Serialize(memStream, request);
return memStream.GetBuffer();
}
/// <summary>
/// 從位元組還原序列化得到對象
/// </summary>
/// <param name="buf">位元組數組 </param>
/// <returns>得到的對象 </returns>
public object DeserializeBinary(byte[] buf)
{
System.IO.MemoryStream memStream = new MemoryStream(buf);
memStream.Position = 0;
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter deserializer =
new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
object newobj = deserializer.Deserialize(memStream);
memStream.Close();
return newobj;
}
調用的時候,以字型對象為例:
序列化:
byte[] FontByte = SerializeBinary(new Font("宋體", 8));
還原序列化:
Font FontItem = (Font)DeserializeBinary(FontByte);