工作记录 深拷贝:全新创建一个对象,值与复制对象一致,两个对象互不相关,修改一个对象不会影响到另一个对象 浅拷贝:全新创建一个对象,值与复制对象一致,两个对象相关,修改一个对象影响到另一个对象 在工作中需要将一个对象进行深拷贝: 做法1:使用反射 做法2:使用序列化 这里使用做法2 利用Newtonsoft.Json先对 对象做一次序列化,再做一次反序列化 添加Newtonsoft.Json引用 using System; using System.Collections.Generic; us
这篇随笔着实在意料之外,主要是源于上周开发BS的一个业务,需要用到对象的深拷贝.说的直白一点,就是将对象内存分配区和引用完全拷贝一份新的.这种需求以前就遇到过,怎么解决的已经记不清了.这次趁着这个机会将对象的深拷贝这个知识点记录下. 先来说说业务场景,直接上代码: //0.反射得到工厂属性 var lstRes = new List<List<DragElementProp>>(); var oType = typeof(Ewin.CommonLib.DtoModel.DTO_TM
public static class Tools { //利用 BinaryFormatter 实现深拷贝 public static T DeepCopyByBinary<T>(this T obj) { T t = default(T); IFormatter formatter = new BinaryFormatter(); using (MemoryStream ms = new MemoryStream()) { formatter.Serialize(ms, obj); ms.
namespace TestConsoleApplication { using System; using System.Diagnostics; using System.Threading; using System.Threading.Tasks; using Microshaoft; using Microshaoft.Share; class Program { static void Main(string[] args) { ; ; // Environment.Processo