2013-04-11 2 views
0

ForMemeber에서 매핑 된 객체를 "서브맵"할 수 있는지 궁금합니다. 클래스 a와 b의 매핑을 구성했습니다. 그런 다음 c와 d를 매핑하는 데 필요한 두 개의 새로운 클래스가 있지만 구조가 다르기 때문에 ForMember를 사용하여 매핑 구성을 매핑해야합니다. 그러나 c와 d는 모두 소스에있는 사용자와 대상에있는 b의 클래스를 가진 속성을가집니다. c와 d의 속성에 대해 내부 매핑에서 b 매핑으로 이미 구성된 매핑을 사용하는 방법이 있습니까? 나는이 권리를 이해한다면오토 매퍼의 ForMember에있는 사용자 매퍼

답변

1

, 당신은

public class a 
{ 
    public int Foo { get; set; } 
} 

public class b 
{ 
    public int Bar { get; set; } 
} 

public class c 
{ 
    public a Baz { get; set; } 
} 

public class d 
{ 
    public b Qux { get; set; } 
} 

같은 뭔가를 그리고 당신은 ab에 대한 매핑을 다시 정의 할 필요없이 매핑 할 클래스 cd의 속성을 원하십니까?

그렇다면 기본적으로 표시됩니다. 이 같은 것을해야합니다 :

public static class AutoMapperConfigurator 
{ 
    public static void Configure() 
    { 
     AutoMapper.Mapper.CreateMap<a, b>() 
      .ForMember(dest => dest.Bar, opt => opt.MapFrom(src => src.Foo)); 
     AutoMapper.Mapper.CreateMap<c, d>() 
      .ForMember(dest => dest.Qux, opt => opt.MapFrom(src => src.Baz)); 
     AutoMapper.Mapper.AssertConfigurationIsValid(); 
    } 
} 

다른 의미가 있다면, 질문을 명확히하기 위해 업데이트하십시오.

+0

감사합니다. 그것이 내가 의미했던 것입니다. – Gaotter

관련 문제