2016-11-28 1 views
1

내 응용 프로그램을 Automapper 5.1.1로 업데이트했고 지금 다른 동작이 나타납니다. 나는이 같은 객체를 인스턴스화하는 경우 :Automapper가 생성자를 호출하지 않음

PolicyEntity entity = mapper.Map<PolicyEntity>(template); 

PolicyEntity 기본 생성자는 더 이상 호출되지되고있다.

관련성이 높은 업그레이드 가이드 또는 릴리스 노트에서 아무 것도 찾을 수 없습니다. 나는 무엇을 놓치고 있습니까?

var config = new MapperConfiguration(cfg => 
{ 
    cfg.CreateMap<PolicyTemplate, PolicyEntity>() 
     .ForAllMembers(o => o.Condition(c => c != null)); 
}); 
mapper = config.CreateMapper(); 

PolicyEntity는 다음과 같은 생성자가 있습니다 :

public PolicyEntity() : base() { } 

    public PolicyEntity(string name) 
    { 
     ... 
    } 
+0

이 내지도의 정의를 변경

을 고정? – Amy

+0

죄송합니다. 매핑 정의가 포함되어 있어야합니다. 질문을 업데이트했습니다. – BenV

+0

'PolicyEntity'가 정의한 생성자는 무엇입니까? – Amy

답변

1

내가 내 대답 here을 찾는 결국

는이 같은 내 매핑을 만들었습니다.

익명 함수 ForAllMembers(o => o.Condition())에 전달 된 기본 매개 변수가 변경된 것 같습니다. 따라서 내 조건이 실패했습니다. 이는 원본 값이 null 일 때라도 AutoMapper가 대상 개체의 속성을 채우고 있음을 의미합니다. 당신의지도가 'ConstructUsing (...)`사용하십니까

.ForAllMembers(o => o.Condition((source, target, sourceValue, targetValue) => sourceValue != null)); 
관련 문제