C#关于二进制序列化的深拷贝
方法:二进制序列化的深拷贝
二进制序列化深拷贝优点:高性能、对象值为空时不会报错。使用方法:在使用二进制序列深拷贝时需要将拷贝对象标记为序列化【[Serializable]】。具体拷贝方法如下:
#region DeepCopyByBinary 二进制序列化深拷贝
/// <summary>
/// DeepCopyByBinary 二进制序列化深拷贝
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="obj"></param>
/// <returns></returns>
public static T DeepCopyByBinary<T>(T obj)
{
object retval;
using (MemoryStream ms = new MemoryStream())
{
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(ms, obj);
ms.Seek(0, SeekOrigin.Begin);
retval = bf.Deserialize(ms);
ms.Close();
}
return (T)retval;
}
#endregion