1. 程式人生 > >利用序列化和反序列化實現深拷貝

利用序列化和反序列化實現深拷貝

實現 turn one span format class pos 反序 isp

以下都是有缺陷的。

技術分享圖片
 1 private static T BinDeepCopy<T>(T t)  
 2       {  
 3           using(var ms = new MemoryStream()) {  
 4               var bf = new BinaryFormatter();  
 5               bf.Serialize(ms,t);  
 6               ms.Position = 0;  
 7               return (T)bf.Deserialize(ms);  
8 } 9 } 10 11 private static T DomDeepCopy<T>(T t) 12 { 13 using(var ms = new MemoryStream()) { 14 XmlSerializer xml = new XmlSerializer(typeof(T)); 15 xml.Serialize(ms,t); 16 ms.Position = 0; 17
return (T)xml.Deserialize(ms); 18 } 19 } 20 21 private static T SoapDeepCopy<T>(T t) 22 { 23 using(var ms = new MemoryStream()) { 24 var soap = new SoapFormatter(); 25 soap.Serialize(ms,t); 26 ms.Position = 0; 27 return
(T)soap.Deserialize(ms); 28 } 29 }
View Code

利用序列化和反序列化實現深拷貝