2010-06-22 3 views
1

나는 다음과 같은 예를 들어 클래스가 MVC/MVVM 형 응용 프로그램에서 사용하고 있습니다Automapper를 사용하여 상속 계층을 매핑하는 방법은 무엇입니까?

class A 
{ 
    public string Property1 { get; set; } 
} 

class B : A 
{ 
    public string Property2 { get; set; } 
} 

class ViewModel 
{ 
    public string Property1 { get; set; } 
    public string Property2 { get; set; } 
} 

A는 내 기본 클래스와 B는 파생 클래스입니다. ViewModel은 A & B를 모두 포함하는 의미입니다.

AutoMapper를 사용하여 A & B에서 ViewModel로 매핑하려고합니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

.ForMember 호출이 필요한 A에 복잡한 속성이 있다고 가정하면 B에서 ViewModel으로지도를 만들 때 이러한 복잡한 속성에 대해 동일한 매핑을 반복해야하거나지도를 상속하거나 다시 사용할 수있는 방법이 필요합니다. A에서 ViewModel으로?

+0

A에 Property2가 없으므로이 경우 동작은 무엇입니까? 그냥 무시해? –

+0

@ 지미 - 예, 무시하십시오. – GiddyUpHorsey

답변

1

A를 ViewModel에 매핑하는 경우 A에없는 구성원을 무시하고 공유해야하는 구성을 반복해야합니다.

상속은 복잡하고 덜 일반적으로되기 시작하는 힘든 견과입니다. 그러나 구성 API에서 확장 메소드를 작성하여 모든 중복 구성 호출을 캡슐화 할 수 있습니다.

+0

구성을 재사용하기 위해 확장 방법 아이디어를 보았습니다. 나는 명시 적으로 멤버들을 무시할 필요가없는 것처럼 보인다. 해야만하니? – GiddyUpHorsey

+0

Ignore()는 구성 유효성 검사를위한 것입니다. –

관련 문제