References

June 13, 2021 · View on GitHub

基本用法

方法说明链接
src.Adapt<Dest>()映射到新类型基本用法
src.Adapt(dest)映射到现有对象基本用法
query.ProjectToType<Dest>()映射 IQueryable
约定和数据类型支持数据类型

Mapper 实例(用于依赖注入)

方法说明链接
IMapper mapper = new Mapper()创建映射器实例映射器
mapper.Map<Dest>(src)映射到新类型
mapper.Map(src, dest)映射到现有对象

Builder (用于复杂映射)

方法说明链接
src.BuildAdapter()
mapper.From(src)
创建 builder映射器
.ForkConfig(config => ...)内联配置映射配置位置
.AddParameters(name, value)传递动态值设置值
.AdaptToType<Dest>()映射到新类型
.AdaptTo(dest)映射到现有对象
.CreateMapExpression<Dest>()获取映射表达式树对象
.CreateMapToTargetExpression<Dest>()获取映射到现有对象的表达式树对象
.CreateProjectionExpression<Dest>()获取映射 IQueryable 的表达式树对象

配置

方法说明链接
TypeAdapterConfig.GlobalSettings全局配置映射配置
var config = new TypeAdapterConfig()创建新的配置实例映射配置实例
src.Adapt<Dest>(config)映射到新类型并指定配置
new Mapper(config)指定映射器的配置
src.BuildAdapter(config)指定Builder的配置
config.RequireDestinationMemberSource验证所有属性的映射映射配置验证
config.RequireExplicitMapping是否开启强制显示映射配置映射配置验证
config.AllowImplicitDestinationInheritance使用基于 目标类 的配置映射配置继承
config.AllowImplicitSourceInheritance使用基于 源类 的配置映射配置继承
config.SelfContainedCodeGeneration1 个方法中生成所有嵌套映射TextTemplate
config.Compile()验证映射配置并缓存映射映射配置验证
config.CompileProjection()验证 IQueryable 映射配置并缓存映射
config.Clone()复制配置映射配置位置
config.Fork(forked => ...)内联配置映射配置位置

扫描配置

方法说明链接
IRegister映射配置扫描接口映射配置位置
config.Scan(...assemblies)扫描程序集中的映射配置映射配置位置
config.Apply(...registers)应用 映射配置映射配置位置

定义映射配置

方法说明链接
config.Default配置应用于所有类型映射映射配置
TypeAdapterConfig<Src, Dest>.NewConfig()
config.NewConfig<Src, Dest>()
创建应用于特定类型映射的配置映射配置
TypeAdapterConfig<Src, Dest>.ForType()
config.ForType<Src, Dest>()
配置应用于特定类型映射映射配置
config.ForType(typeof(GenericPoco<>),typeof(GenericDto<>))配置应用于泛型类型映射映射配置
config.When((src, dest, mapType) => ...)配置根据条件进行的类型映射映射配置
config.ForDestinationType<Dest>()配置应用于特定目标类型映射配置
嵌套映射的配置嵌套映射

配置

方法说明支持 IQueryable链接
AddDestinationTransform清除特定类型的数据x设置值
BeforeMapping在映射开始之前的步骤映射前&映射后
AfterMapping映射完成之后的步骤映射前&映射后
AvoidInlineMapping对于大型类型映射,跳过内联处理对象引用
ConstructUsing定义如何创建对象x构造函数
EnableNonPublicMembers映射非公开成员映射非公开成员
EnumMappingStrategy选择按值还是按名称映射枚举数据类型
Fork在主配置上添加没有副作用的新配置x嵌套映射
GetMemberName定义如何解析成员名x自定义成员名称
Ignore忽略特定属性x映射忽略
IgnoreAttribute忽略属性上特定的特性标记x特性标记
IgnoreIf忽略表达式x根据条件映射忽略
IgnoreMember忽略设置规则x基于规则
IgnoreNonMapped忽略 Map 中未定义的所有属性x映射忽略
IgnoreNullValues如果 源属性 为空,则不映射浅映射和合并映射
Include映射包含派生类型映射配置继承
IncludeAttribute包括在属性上注释的特定的特性标记x特性标记
IncludeMember包含的配置规则x基于规则
Inherits复制基类的映射配置x映射配置继承
Map定义属性映射x自定义映射
MapToConstructor构造函数映射x构造函数
MapToTargetWith定义如何映射到现有对象自定义映射
MapWith定义如何映射x自定义映射
MaxDepth定义映射最大深度x对象引用
NameMatchingStrategy定义如何解析属性的名称x自定义成员名称
PreserveReference映射时追踪引用对象引用
ShallowCopyForSameType如果源类型与目标类型相同,直接分配而不是深度克隆浅映射和合并映射
TwoWays定义双向映射x双向 & 逆扁平映射
Unflattening逆扁平映射x双向 & 逆扁平映射
UseDestinationValue使用现有属性对象映射数据映射只读属性

Attributes

特性说明链接
[AdaptMember(name)]设置属性映射的目标的属性名称基于Attribute的配置
[AdaptIgnore(side)]映射时忽略成员基于Attribute的配置
[UseDestinationValue]使用现有属性对象映射数据基于Attribute的配置
[AdaptTo] [AdaptFrom] [AdaptTwoWays]在POCO类上添加设置映射配置位置
[Mapper] [GeneratMapper] [PropertyType]为代码生成定义设置Mapster.Tool

插件库

名称方法说明
Asyncsetting.AfterMappingAsync
builder.AdaptToTypeAsync
对映射执行异步操作
Debuggingconfig.Compiler = exp => exp.CompileWithDebugInfo()编译以允许步进调试
Dependency InjectionMapContext.Current.GetService<IService>()依赖注入获取映射服务
EF 6 & EF Corebuilder.EntityFromContext将数据复制到跟踪的EF实体
FECconfig.Compiler = exp => exp.CompileFast()编译使用FastExpressionCompiler
Immutableconfig.EnableImmutableMapping()映射到 immutable collection(只读集合.md)
Json.netconfig.EnableJsonMapping()映射JSON对象到实体类或字符串;映射实体类或字符串到 JSON 对象

代码生成器

插件工具说明
Mapster.Tooldotnet mapster生成 DTO 并在构建时映射代码
TextTemplatet4使用 T4 生成映射代码