我正在尝试将响应对象从webservice映射到我的项目中的Class。我认为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>();
答案 0 :(得分:1)
AutoMapper仅映射顶级对象。
如果您的课程按以下方式构建,则无法使用:
Class A
{
B b;
}
Class B
{
}
A类不知道如何在A类中映射属性B.
为此,您需要创建一个Profile类。