오늘 AutoMapper v1.1을 사용하여 완전히 작동하는 응용 프로그램을 업그레이드하여 현재 AutoMapper v2.1을 사용하고 있으며 이전 버전을 사용하면서 결코 만난 적이없는 몇 가지 문제를 다룰 것입니다. 나는 2.1로 발생하는 첫 번째 문제가 있었다 그러나 여기 잘못된 생성자를 사용하는 AutoMapper
는 ... 다시 에서 DTO 도메인 객체public class TypeOne
{
public TypeOne()
{
}
public TypeOne(TypeTwo two)
{
//throw ex if two is null
}
public TypeOne(TypeTwo two, TypeThree three)
{
//throw ex if two or three are null
}
public TypeTwo Two {get; private set;}
public TypeThree Three {get; private set;}
}
public class TypeOneDto
{
public TypeOneDto()
{
}
public TypeTwoDto Two {get; set;}
public TypeThreeDto Three {get; set;}
}
에
Mapper.CreateMap<TypeThreeDto, TypeThree>();
Mapper.CreateMap<TypeTwoDto, TypeTwo>();
Mapper.CreateMap<TypeOneDto, TypeOne>();
var typeOne = Mapper.Map<TypeOne>(typeOneDto);
내 코드 매핑의 예입니다 args 중 하나가 null이고 1 arg 생성자를 사용해야하는 경우 AutoMapper는 2 개의 args로 생성자를 사용하려고했습니다.
나는 다음Mapper.CreateMap<TypeOneDto, TypeOne>().ConstructUsing(x => new TypeOne());
을 사용하려고하지만 내가 해결할 수있는 '모호한 호출'오류가 있었다.
나는 다음
Mapper.CreateMap<TypeOneDto, TypeOne>().ConvertUsing(x => new TypeOne());
을 시도하고 성공적으로 매개 변수가없는 생성자를 사용하여 TypeOne 객체를 생성 않았지만 다음은 개인 setter 속성을 설정하지 못했습니다.
AutoMapper 웹 사이트에서 도움을 요청하고 소스 코드를 다운로드하여 좋은 모양으로 만들었지 만 작은 설명서가 없기 때문에 ConstructUsing에 대한 단위 테스트가 많지 않았습니다.
v2.1에서 변경해야 할 사항이 없습니까? 나는 그것이 v1.1에서 많이 변한 것에 놀랐다.
가능한 중복 (http://stackoverflow.com/questions/2239143/automapper-how-to-map-to-constructor-parameters- 대신에 속성 설정자) –
"ConstructUsing"을 사용할 때 위에 언급 한 동일한 오류가 계속 발생합니다. 매개 변수가없는 생성자로 새 객체를 만들 때 "모호한 호출". –