又一个轮子–QMapper
- 2019 年 10 月 3 日
- 筆記
1 ??
?????????????????????????????????????????????????????Networksocket????WebApiClient?????????Mapper????????Mapper???????????????QMapper??
2 QMapper???
2.1 ????
- ???????????
- ??????????
- ?????????
2.2 ????
- ??????????
- ??????????????
- ???????????????
- ?????Api????
2.3 ????
- PO?VO?DTO????
- PO?VO?DTO???????????
- ????????????PO?VO?DTO????
2.4 ????
var a = new A(); var b = a.AsMap().To<B>(); var b = a.AsMap("Name","Age").To<B>(); var b = a.AsMap().Ignore(item=>item.Id).To<B>();
3 Benchmark
BenchmarkDotNet=v0.11.5, OS=Windows 10.0.17134.885 (1803/April2018Update/Redstone4) Intel Core i3-4150 CPU 3.50GHz (Haswell), 1 CPU, 4 logical and 2 physical cores .NET Core SDK=3.0.100-preview6-012264 [Host] : .NET Core 3.0.0-preview6-27804-01 (CoreCLR 4.700.19.30373, CoreFX 4.700.19.30308), 64bit RyuJIT DefaultJob : .NET Core 3.0.0-preview6-27804-01 (CoreCLR 4.700.19.30373, CoreFX 4.700.19.30308), 64bit RyuJIT | Method | Mean | Error | StdDev | Median | |-------------------------------- |---------------:|---------------:|--------------:|---------------:| | QMap | 201.0 ns | 4.368 ns | 11.74 ns | 198.2 ns | | EmitMap | 832.6 ns | 42.569 ns | 119.37 ns | 780.7 ns | | AutoMap_Singleton_Configuration | 428.1 ns | 12.006 ns | 33.86 ns | 415.0 ns | | AutoMap_Transient_Configuration | 4,694,588.0 ns | 117,854.402 ns | 341,916.99 ns | 4,559,848.4 ns |
3.1 ?????
AutoMap_Singleton_Configuration?????????????????????????????????IMapper????????????????DI?????????????????IMapper?????????????3??????
3.2 QMap????
QMap????????????????????????????????????????????????????????????????????QMap???????????Expression?????????????????????????????IL??????????????????
4 github???
https://github.com/xljiulang/QMapper
??QMapper???????????????????