2011-02-10 6 views
0

나는 다음과 같은 객체 목록이 있습니다AutoMapper 및 다른 개체는

A: IBaseType 
{ 
    string X 
    DateTime Y 
    int Z 
} 

을하고 나는 그들의 속성을 기반으로 생산되는 세 가지 다른 객체를 매핑 한 후 싶어. 예를 들어

:

Mapper.Map<IList<A>, IList<IBaseType>>(list); 

및 출력 컬렉션에서

가 다른 개체

X: IBaseType 
{ 
    string X; 
} 

Y: IBaseType 
{ 
    DateTime Y 
} 

등을 얻을.

또는 이런 일에

는 :

Mapper.CreateMap<Item, ItemModel>().FromMap(d=>d.Conditions, opt=>(there some like to IValueResovler); 
+0

내가 AutoMapper을 생각하지 않는다 (즉 가정 할 질문이다) 것을 지원합니다. – driis

+0

@driis이 작업을 수행하는 방법을 알고 있습니까? –

+0

직접 유형 선택 코드를 작성해야 할 것입니다. 'A' 인스턴스가 매핑되기를 원하는 타입을 결정한 후 AutoMapper를 사용하여 속성을 매핑 할 수 있습니다. – driis

답변

1

나는 가장 좋은 방법은 커스텀 매핑 기능을 구현하는 것이라고 생각합니다. 이 같은

뭔가 :

public IBaseType Map(A item) 
{ 
    if (/*your condition*/) 
      return new X(){ X = item.X} 

    else if (/*your condition*/) 
      return new Y(){ Y = item.X} 
} 

및 사용이 방법

List<IBaseType> result = new List<IBaseType>() ; 
list.Foreach(x => result.Add(Map(x))); 
+0

나는 이렇게했다. 그러나 AutoMapper를 통해이 문제를 해결하려고합니다. –

+0

AutoMapper를 통해 문제를 해결하는 것은 매우 비쌉니다. –