[非专业翻译] Mapster - 映射配置
2021-06-24 08:54
232 查看
[非专业翻译] Mapster - 映射配置
系列介绍
[非专业翻译] 是对没有中文文档进行翻译的系列博客,文章由机翻和译者自己理解构成,和原文相比有所有不同,但意思基本一致。
因个人能力有限,如有谬误之处还请指正,多多包涵。
正文
本文将说明 Mapster 中的映射配置
映射配置
使用
TypeAdapterConfig<TSource, TDestination>.NewConfig()或
TypeAdapterConfig<TSource, TDestination>.ForType()配置类型映射;
当调用
NewConfig方法时,将会覆盖已存在的类型映射配置。
TypeAdapterConfig<TSource, TDestination> .NewConfig() .Ignore(dest => dest.Age) .Map(dest => dest.FullName, src => string.Format("{0} {1}", src.FirstName, src.LastName));
如若不想覆盖之前已经创建好的映射配置,可以使用
TypeAdapterConfig<TSource, TDestination>.ForType();
ForType方法与
NewConfig的差别:如果指定类型映射配置不存在,那它将创建一个新的映射,如果指定类型的映射配置已存在,那么它将会扩展已有的映射配置,而不是删除或替换已有的映射配置。
TypeAdapterConfig<TSource, TDestination> .ForType() .Ignore(dest => dest.Age) .Map(dest => dest.FullName, src => string.Format("{0} {1}", src.FirstName, src.LastName));
全局设置
使用全局设置将映射策略应用到所有的映射配置。
TypeAdapterConfig.GlobalSettings.Default.PreserveReference(true);
对于特定的类型映射,你可以使用
TypeAdapterConfig<SimplePoco, SimpleDto>.NewConfig()覆盖全局映射配置。
TypeAdapterConfig<SimplePoco, SimpleDto>.NewConfig().PreserveReference(false);
基于规则的映射配置
你可以使用
When方法,当满足某个条件时,进行一些特定的映射操作。
下面的这个例子,当任何一个映射的 源类型和目标类型 相同时,不映射
Id属性:
TypeAdapterConfig.GlobalSettings.When((srcType, destType, mapType) => srcType == destType) .Ignore("Id");
在下面这个例子中,映射配置只对
IQueryable生效:
TypeAdapterConfig.GlobalSettings.When((srcType, destType, mapType) => mapType == MapType.Projection) .IgnoreAttribute(t ad8 ypeof(NotMapAttribute));
只配置目标类型
在不确定源类型的时候,使用
ForDestinationType来创建针对于 目标类型 的映射配置。
比如使用
AfterMapping在映射完成后调用目标类型对象的
Validate方法:
TypeAdapterConfig.GlobalSettings.ForDestinationType<IValidator>() .AfterMapping(dest => dest.Validate());
注意!在上面的代码段中指定目标类型为
IValidator接口,那么将会把映射配置应用到所有实现了IValidator的类型。
泛型类型映射
如果映射的是泛型类型,可以通过将泛型类型传给
ForType来创建设置.
TypeAdapterConfig.GlobalSettings.ForType(typeof(GenericPoco<>), typeof(GenericDto<>)) .Map("value", "Value");
相关文章推荐
- [非专业翻译] Mapster - 映射器
- [非专业翻译] Mapster - 配置实例
- [非专业翻译] 高性能对象映射框架 - Mapster
- [非专业翻译] Mapster - 基本使用
- [非专业翻译] Mapster - 数据类型
- [翻译]WINCE6.0下配置BSP内存映射
- js通过googleAIP翻译PHP系统的语言配置的实现代码
- Hibernate配置映射文件
- IIS7.5(经典/集成),IIS6,asp.net 4.0下配置Url映射(asp.net mvc)
- 非注解和注解的处理器映射器、适配器配置
- spring配置hibernate映射文件
- MyBatis中XML 映射配置文件的简单介绍
- CentOS系统下Apache配置多域名或多端口映射的方法
- mybatis映射文件配置
- MyBatis 中XML映射配置文件
- 在spring的配置文件里配置数据源、ORM映射、声明事件管理
- SpringMVC静态资源映射配置
- Mybatis XML 映射配置文件
- Mybatis使用generator自动生成映射配置文件信息
- ORM组件 ELinq (二) 映射配置之Table