0

我正在尝试将响应对象从 web 服务映射到我项目中的类。我认为 Automapper 甚至会自动映射子对象,除非为成员强制设置,否则它不会。我为什么要这样做?

Mapper.CreateMap<GetIfpQuoteResponse.Quote, QuoteWSModel>() .ForMember(dest => dest.CarrierRate, opt => opt.MapFrom(src => src.Carriers)) .ForMember(dest => dest.DroppedCarriers, opt => opt.MapFrom(src => src.DroppedRates)) .ForMember(dest => dest.MemberPlans, opt => opt.MapFrom(src => src.MemberPlans));

当我提到这样的类映射时,为什么自动映射器不会映射我的子对象

Mapper.CreateMap<GetIfpQuoteResponse.Quote, QuoteWSModel>(); Mapper.CreateMap<GetIfpQuoteResponse.Quote.Carrier, CarrierRateModel>(); Mapper.CreateMap<GetIfpQuoteResponse.Quote.DroppedCarrier, DroppedCarrierModel>();

4

1 回答 1

1

AutoMapper 仅映射顶级对象。

如果您的类是按以下方式构建的,它将无法工作:

Class A
{
  B b;
}

Class B
{

}

A 类不知道如何在 A 类中映射属性 B。

为此,您需要创建一个 Profile 类。

自动映射器教程

于 2015-07-22T13:29:00.117 回答