using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using System.Xml.Serialization;

namespace WebApplicationBAOJI.Models
{
    /// <summary>
    /// 深拷贝对象
    /// </summary>
    public class DeepCopy<T>
    {      
        /// <summary>
        /// 推荐此深拷贝方法,类对象不用打[Serializable]标记,照样可以深拷贝
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public static T DeepCopyObjectByXml(T obj)
        {
            object retval;
            MemoryStream ms = new MemoryStream();
            XmlSerializer xml = new XmlSerializer(typeof(T));
            xml.Serialize(ms, obj);
            ms.Seek(0, SeekOrigin.Begin);
            retval = xml.Deserialize(ms);
            ms.Close();
            ms.Dispose();
            return (T)retval;
        }
    }
}


本文转载:CSDN博客