普通版:
public static object CloneObject( object obj )
{
using ( MemoryStream memStream = new MemoryStream( ) )
{
BinaryFormatter binaryFormatter = new BinaryFormatter( null ,
new StreamingContext( StreamingContextStates.Clone ) );
binaryFormatter.Serialize( memStream , obj );
memStream.Seek( , SeekOrigin.Begin );
return binaryFormatter.Deserialize( memStream );
}
}
泛型版:
public static T Clone<T>(T obj)
{
T ret = default(T);
if (obj != null)
{
XmlSerializer cloner = new XmlSerializer(typeof(T));
MemoryStream stream = new MemoryStream();
cloner.Serialize(stream, obj);
stream.Seek(, SeekOrigin.Begin);
ret = (T)cloner.Deserialize(stream);
}
return ret;
}
注意:如果某个类报提示错误:XXX类无法序列化,则要在类名上加上[Serializable]
转载:
https://blog.csdn.net/yinbucheng/article/details/62418205