深度复制帮助类封装
using System.Collections.Generic;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using System.Xml.Serialization;
/// <summary>
/// 深度复制,序列化拷贝。
/// </summary>
public class DeepCopyExtensions<T>
{
/// <summary>
/// 深度复制
/// xml格式序列化,反序列化实现
/// </summary>
/// <param name="item">拷贝对象</param>
/// <returns></returns>
public static T DeepCopyByXml(T item)
{
T result;
using (MemoryStream stream = new MemoryStream())
{
XmlSerializer xml = new XmlSerializer(typeof(T));
xml.Serialize(stream, item);
stream.Seek(0, SeekOrigin.Begin);
result = (T)xml.Deserialize(stream);
}
return result;
}