public class EntityHelper
{
public static T DeepCopy<T>(T obj)
{
object retval;
using (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();
}
return (T)retval;
}
}
今天发现个丢脸的错误,实现复制功能时,我竟然把界面的值直接传递过去了。。。。。。,后来发现每个字段都拷贝一次太麻烦,于是使用了以上代码实现深拷贝。这个实体不用实现任何借口与特性。
还有其他的方法如下http://www.cnblogs.com/yuilin/archive/2011/10/28/2227881.html