0

プロジェクト内の応答オブジェクトを Web サービスからクラスにマップしようとしています。オートマッパーはサブオブジェクトも自動的にマッピングすると思っていましたが、強制的にメンバーに設定しない限り、そうしません。なぜ私はこれをしなければならないのですか?

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 をマップする方法を知りません。

これを行うには、プロファイル クラスを作成する必要があります。

自動マッパーのチュートリアル

于 2015-07-22T13:29:00.117 に答える