2017-11-08 18 views
0

変更を保存するために、Automapperを使用して、文字列型のプロパティをdestinationからsourceのint型のプロパティにマップしています。宛先からソースへのマッピングと逆マップ

私はForMemberを試しましたが、ソースから宛先へのみ動作します。

それでは、どのように私はクラスAでint型のIpPortという名前のプロパティにクラスBに文字列型のIpPortをという名前のプロパティをマッピングすることができます。

クラスAとBは、次のようにマッピングされます

cf.CreateMap<classA, classB>().ReverseMap(); 
+0

何かのように、送信元と宛先のタイプの種類を確認することができます。 – Aria

+0

宛先に送信元として機能する@Aria、opositeを使用したい –

+2

[Automapper:Reverse with双方向マッピング]の複製が可能です。 Map()とForMember()](https://stackoverflow.com/questions/13490456/automapper-bidirectional-mapping-with-reversemap-and-formember) – DaniCE

答えて

0

AutoMapperメインのサイトには、あなたが逆のマップをカスタマイズするためのForPathを使用することができます言ったように。

だから、下のForPath liekを使用することができます。

CreateMap<ClassA, ClassB>() 
    .ForMember(d => dest.IpPort , opt => opt.MapFrom(src => int.Parse(src.IpPort))); 
    .ReverseMap() 
    .ForPath(s => s.IntPort, opt => opt.MapFrom(src => src.IntPort.ToString())); 

か、AferMapを使用すると `ForMember(DEST => destのような

AutoMapper.CreateMap<ClassA, ClassB>().ReverseMap().AfterMap((source, destination) => 
     { 
      object ob = (object)source; 
      string type= ob.GetType().ToString(); 
      if(type == "ClassA") 
       //Do something 
      else 
       //Do something 
     }) 
関連する問題