我目前正在使用 AutoMapper 进行测试,但我目前遇到属性名称不匹配的情况,因此需要自定义类型转换。但是当我使用自定义类型转换器时,我必须手动映射所有其他属性吗?我当然不能在类型转换器中调用另一个 Map,因为这会导致溢出。
这是不需要的,因为每个模型最多有 3 个特定于模型的属性不匹配,所以我确实希望自动映射其他属性。
谁能指出我正确的方向?
我目前正在使用 AutoMapper 进行测试,但我目前遇到属性名称不匹配的情况,因此需要自定义类型转换。但是当我使用自定义类型转换器时,我必须手动映射所有其他属性吗?我当然不能在类型转换器中调用另一个 Map,因为这会导致溢出。
这是不需要的,因为每个模型最多有 3 个特定于模型的属性不匹配,所以我确实希望自动映射其他属性。
谁能指出我正确的方向?
您不需要使用自定义类型转换器来映射具有一些名称不匹配的属性的类。正如他们所说,自定义类型转换器适用于您需要“完全控制一种类型到另一种类型的转换”。
使用 设置地图,CreateMap()
然后使用 设置一些额外的规则ForMember()
,如下所示:
Mapper.CreateMap<Person, Customer>()
.ForMember(dest => dest.Surname, opt => opt.MapFrom(src => src.LastName))
.ForMember(dest => dest.DateOfBirth, opt => opt.MapFrom(src => src.DOB));
LastName
这将andDOB
从源Person
类映射到目标类的Surname
andDateOfBirth
属性Customer
。