2017-11-08 8 views
0

변경 사항을 저장하려면 Automapper를 사용하여 문자열 유형이 destination에서 source 인 int 유형의 속성으로 매핑하십시오.대상에서 소스 및 반전지도로 매핑을 사용자 정의하십시오.

나는 ForMember을 시도했지만 소스로만 작동합니다.

는 그래서 클래스 A에 int 형의 IpPort라는 속성 클래스 B 입력 문자열의 IpPort라는 이름의 속성을 매핑 할 수있는 방법.

클래스 A와 B는 다음과 같이 매핑됩니다 다음 AutoMapper 주요 사이트로

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

무언가 같이 소스 및 대상 유형의 유형을 확인할 수 있습니다. – Aria

+0

목적지까지의 소스로 작동하는 @Aria, oposite를 원합니다. –

+2

가능한 [Automapper : Reverse (역방향) 매핑]의 가능한 복제본입니다. Map() 및 ForMember()] (https://stackoverflow.com/questions/13490456/automapper-bidirectional-mapping-with-reversemap-and-formember) – DaniCE

답변

0

는 리버스 맵을 사용자 정의하는 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 (이명 령 => 이명 령은 같은

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 
     })