1
AutoMapper에서 기본 대상 매핑을 만들 수 있습니까?AutoMapper에서 상속 된 클래스의 기본 매핑 구성
소스 클래스 :
class SourceA {
public string X { get; set; }
}
class SourceB {
public string Y { get; set; }
}
대상 클래스 :
class DestBase {
public List<string> Z { get; set; }
}
class DestA : DestBase {
public string X { get; set; }
}
class DestB : DestBase {
public string Y { get; set; }
}
그리고 매핑 구성은 다음이 포함
cfg.CreateMap<SourceA, DestA>()
.ForMember(dest => dest.Z, src => src.MapFrom(s => null));
cfg.CreateMap<SourceB, DestB>()
.ForMember(dest => dest.Z, src => src.MapFrom(s => null));
모든 대상에 대한 기본 매핑을 만들 수 있습니다 상속받은 클래스 DestBase
을 반복하여 피하기 위해 .ForMember(...)
라인?
예 : 같은 : 원칙적으로
cfg.CreateMap<object, DestBase>
.ForMember(dest => dest.Z, src => src.MapFrom(s => new List<string>()));
내 원본 개체가 다른 사람들에게 노출되어 멋지고 깨끗하게 보여야합니다. 모든 목적지 클래스가 'DestBase'클래스로부터 (현재) 상속 받고있는 것은 아니며 따라서 소스 클래스가 (더미) 인터페이스를 구현해야하는 것은 아닙니다. 하지만 다른 솔루션을 사용할 수 없다면 문제가 해결 될 수도 있습니다 ... 내가 테스트 해 보겠습니다 ... –
불행히도, Include를 사용하려면 공통 소스 유형 또는 인터페이스가 필요합니다. –