提供深度克隆对象功能,基于编译表达式实现,性能与原生代码几无差别,远超 json/binary 序列化实现。
1. 简单示例
class Person
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public DateTime Birth { get; set; }
public double Score { get; set; }
public DateTime CreateTime { get; set; }
public DateTime UpdateTime { get; set; }
public EnumState State { get; set; }
public string Desc { get; set; }
public string Phone { get; set; }
}
//克隆
var list = new List<Person>(){/*放点数据*/}
var newList = list.DeepClone();
2. 性能
分别与原生代码,json、binary 序列化机制比对;
原生代码如:
var newList = list.Select(i => new Person { Id = i.Id/*其他属性*/}).ToList();