下面代码应该可以解决问题: /// <summary>
/// 序列化为二进制字节数组
/// </summary>
/// <param name="request">要序列化的对象</param>
/// <returns>字节数组</returns>
public static 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 static 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;
}
private void button3_Click(object sender, System.EventArgs e)
{
Font font = new Font("宋体", 16f);
//序列化
byte[] data = Utility.SerializationUtil.SerializeBinary(font); //重新取回数据
Font font1 = (Font)Utility.SerializationUtil.DeserializeBinary(data);
MessageBox.Show(font1.FontFamily.ToString()); }
/// 序列化为二进制字节数组
/// </summary>
/// <param name="request">要序列化的对象</param>
/// <returns>字节数组</returns>
public static 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 static 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;
}
private void button3_Click(object sender, System.EventArgs e)
{
Font font = new Font("宋体", 16f);
//序列化
byte[] data = Utility.SerializationUtil.SerializeBinary(font); //重新取回数据
Font font1 = (Font)Utility.SerializationUtil.DeserializeBinary(data);
MessageBox.Show(font1.FontFamily.ToString()); }
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货