public void Run() { var arr = new[] { 1, 2, 3, 4, 5 }; var mapper = new MapperBuilder().Build(); var begin = DateTime.Now; for (var i = 0; i < this.Times; i++) { GenerateCopyExpression()(arr); } Console.WriteLine($"expression: {DateTime.Now - begin}"); begin = DateTime.Now; for (var i = 0; i < this.Times; i++) { mapper.From(arr).To <int[]>(); } Console.WriteLine($"reflection mapper: {DateTime.Now - begin}"); }
static void Main(string[] args) { var builder = new MapperBuilder(); var services = new ServiceCollection(); services.AddMapping(); //var mapper = services.BuildServiceProvider().GetService<IMapper>(); var mapper = new MapperBuilder().Build(); var from = new From { Name = "kevin", Age = 123, Parent = new From { Parent = new From { Name = "parent" } } //Child = new From { Name = "bao" }, //Age = 123, //Height = 180, //Fields1 = new int?[] { 1, 2, 3, null } }; //var to = mapper // .From(from, options => { // //options.Ignore(x => x.Parent.Parent.Name); // //options.Map(x => x.Name, "Child.Child.Name", "Child2.Name"); // }) // .To<To>(options => { // options.Map(x => x.Name, x => x.Child.Child.Name, x => x.Child2.Name); // }); var to2 = mapper.From(TimeSpan.FromSeconds(10)).To <TimeSpan>(); }