需要使用Automapper的ReverseMap方法
示例代码:
假设有以下两个类:
public class SourceInnerClass
{
public int InnerInt { get; set; }
}
public class SourceClass
{
public int Id { get; set; }
public string Name { get; set; }
public SourceInnerClass InnerClass { get; set; }
}
而我们想要将它们映射到以下两个类:
public class DestinationInnerClass
{
public int InnerInt { get; set; }
}
public class DestinationClass
{
public int Id { get; set; }
public string Name { get; set; }
public DestinationInnerClass InnerClass { get; set; }
}
要使嵌套的成员被映射,需要使用ReverseMap()方法。例如:
Mapper.Initialize(cfg =>
{
cfg.CreateMap().ReverseMap();
cfg.CreateMap().ReverseMap();
});
var source = new SourceClass
{
Id = 1,
Name = "Source",
InnerClass = new SourceInnerClass
{
InnerInt = 2
}
};
var dest = Mapper.Map(source);
Console.WriteLine(dest.Id); //输出:1
Console.WriteLine(dest.Name); //输出:"Source"
Console.WriteLine(dest.InnerClass.InnerInt); //输出:2
通过使用ReverseMap()方法,Automapper可以正确地映射嵌套的成员。