应用场景:
// class A 和 class B有一样的属性, A a = new A(); B b = new B(); // 要把a的值赋给b(传统方法通过反射遍历A和B的所有属性,然后逐一赋值) ... // Emit Mapper改变了一切
b = ObjectMapperManager.DefaultInstance.GetMapper<A, B>(new DefaultMapConfig().NullSubstitution<string, string>(s => "")).Map(a);
可以定义映射规则:
new DefaultMapConfig();
支持的方法 |
描述 |
ConvertUsing |
为指定的成员提供自定义的转换逻辑 |
ConvertGeneric |
为指定的泛型类型成员提供自定义的转换逻辑 |
ConstructBy |
为目标对象使用指定的构造函数替代默认构造函数 |
NullSubstitution |
当源对象中指定的成员在为null时,给目标对象的成员赋值 |
IgnoreMembers |
忽略指定成员的映射 |
PostProcess |
在映射完成后执行指定的方法 |
ShallowMap |
指定的成员采用浅拷贝方式映射 |
DeepMap |
指定的成员采用深拷贝方式映射 |
MatchMembers |
如果成员名称的映射不采用精确匹配,可以指定具体的映射逻辑 |