2017-04-13 10 views
0

나는 그럼 난 사이 너무AutoMapperMappingException 건물 이름은

public static FooDTO ToDTO(this IFoo getter) 
{ 
    return AutoMapperExtensions.Map<IFoo, FooDTO >(getter);    
} 

이 어댑터는 어댑터와 같은 DTO 내 엔티티를 변환하는 확장 방법을 그래서

public interface IFoo 
{ 
    byte[] Content{get; set;} 
} 

public class FooDTO : IFoo 
{ 
    byte[] Content {get; set;} 
} 

public FooAdapter : IFoo 
{ 
    Picture _picture; 
    public FooAdapter(Picture picture) 
    { 
     this._picture = picture; 
    } 

    public byte[] Content => this._picture.GetContent(); 
} 

같은 사용자 정의 어댑터 패턴을 가지고하기 동일한 인터페이스 IFoo, 가끔 AutoMapperMappingExceptions을 얻습니다.

매핑 유형 : FooAdapter -> 바이트 []는 MyNamespace.FooAdapter ->은 []

대상 경로 System.Byte : FooDTO.Content

소스 값 : MyNamespace.FooAdapter

모든 정보는 좋은 하지만 오류를 던진 속성의 속성 이름은 어떻게 얻을 수 있습니까?

+0

그냥 빨리 getter가있는 (즉, 값을 반환하는) 속성의 값을 매핑하려고하는 이유는 무엇입니까? – DOMZE

+0

@DOMZE이 어댑터 패턴에는 여러 가지 이점이 있습니다. 1. 이렇게함으로써 DTO와 귀하의 법인간에 동일한 성질의 이름을 가질 필요가 없습니다. 2. 이것은 매핑 사이에 추가 레이어를 제공하므로 논리를 추가 할 수 있습니다. 예를 들어 서버에서 설정 되었기 때문에 ID를 매핑하지 않고 다른 사람이 사용자의 ID를 수정 한 경우 버그가 발생할 수 있습니다. –

+0

내 잘못, 나는 목적지가 당신의 실체가 아니라는 것을 잘못 알고있다 ;-) – DOMZE

답변

1

오류 컨텍스트를 통해 회원 이름에 액세스 할 수 있는지 궁금한 사람이 있었습니까?

catch(AutoMapperMappingException mappingException) 
{ 
    BuildNewError(mappingException.Context.MemberName); 
}