利用 System.Runtime.Serialization序列化与反序列化完成引用对象的复制
/// <summary>
/// 深度克隆一个对象
/// </summary>
/// <typeparam name="T">被克隆对象的类型</typeparam>
/// <param name="t">被克隆的对象</param>
/// <returns>返回一个新的T对象</returns>
public T Clone<T>(T t)
{
using (Stream objectStream = new MemoryStream())
{
//利用 System.Runtime.Serialization序列化与反序列化完成引用对象的复制
IFormatter formatter = new BinaryFormatter();
formatter.Serialize(objectStream, t);
objectStream.Seek(0, SeekOrigin.Begin);
return (T)formatter.Deserialize(objectStream);
}
}
浙公网安备 33010602011771号