2017-11-15 7 views
0

C#에서 automapper를 처음 사용했지만 맵에 값을 빈 목록으로 설정하는 방법을 알고 싶습니다.Automapper가 대상 요소를 빈 목록 객체로 설정했습니다.

그래서 당신과 당신을 매핑하는 ForMember에서 나는 새로운 객체를 만들고 그 객체를 비어있는 목록으로 사용하기를 원합니다. 자동 작성기에서 어떻게이 작업을 수행 할 수 있습니까? 당신은 .ForMember()을 사용하십시오

답변

0

.UseValue()

public class Source 
{ 
    public int Id { get; set; } 
} 

public class Dest 
{ 
    public int Id { get; set; } 
    public List<Foo> Foos { get; set; } 
} 

public class Foo 
{ 
    public string Name { get; set; } 
} 

매핑 설정

CreateMap<Source, Dest>() 
    .ForMember(d => d.Foos, m => m.UseValue(new List<Foo>())); 

사용

var source = service.GetItem(); 
var dest = Mapper.Map<Dest>(source); 

Assert.IsTrue(dest.Foos.GetType() == typeof(List<Foo>)); 
+0

환호하지만 내 객체가 복합 형이기 때문에 어떻게 유형을 인스턴스화 할 것 그 다음 목록? – Andy5

+0

어떤 유형을 인스턴스화 하시겠습니까? AutoMapper는 소스 유형의 값을 기반으로 대상 유형의 새 인스턴스를 제공합니다. – Jasen

+0

내 목록이 문자열이 아니거나 길지 않습니다. 예를 들어, myobject someType = new myobject(); 목록을 만드는 데 사용하십시오. – Andy5