[英]map to derived type of destination in AutoMapper
我想指定一個映射,以便從“Source”到“Destination”的所有映射都作為派生類“Destination”返回
[Test]
public void Map_SourceToDestinationAsDerivedType_ReturnsDerivedType()
{
// arrange
AutoMapper.Mapper.CreateMap<Source, Destination>()
.CreateAs<ActualDestination>() // psedu code
.ForMember(dst => dst.Transformed, opt => opt.ResolveUsing(src => src.Property));
var source = new Source{Property = "hi mom" };
// act
var destination = AutoMapper.Mapper.Map<Destination>(source);
// assert
Assert.That(destination, Is.InstanceOf<ActualDestination>());
}
public class Source
{
public string Property { get; set; }
}
public class Destination
{
}
public class ActualDestination : Destination
{
public string Transformed { get; set; }
}
Automapper不直接支持此功能
然而,您可以獲得的最接近的是為Source, ActualDestination
對定義映射器
AutoMapper.Mapper.CreateMap<Source, ActualDestination>()
.ForMember(dst => dst.Transformed, opt => opt.ResolveUsing(src => src.Property));
然后使用Source, Destination
映射中的ConstructUsing
選項執行從Source
到ActualDestination
:
AutoMapper.Mapper.CreateMap<Source, Destination>()
.ConstructUsing((Source s) => AutoMapper.Mapper.Map<ActualDestination>(s));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.