AutoMapper-조정 대상에는 문자열이 null 실제로 그것이 문자열입니다.빈

StackOverflow https://stackoverflow.com/questions/1526813

  •  20-09-2019
  •  | 
  •  

문제

다음 맵핑을 사용:

Mapper.CreateMap<ObjectA, ObjectB>()
    .ForMember(dest => dest.SomeStringProperty, opt => opt.MapFrom(src => null))

SomeStringProperty 지금 빈 문자열이 null 이 아이(아)

이것이 버그?어떻게 그것을 얻을 수있는 방법을 실제로 null 이 될?

나는 opt.Ignore() 그것을 만들 것입니다 null 하지만 실제로 원하는 조건부 null 다음과 같은 위의 단순화 버그(?) 은 이 방지

Mapper.CreateMap<ObjectA, ObjectB>()
    .ForMember(dest => dest.SomeStringProperty, opt => opt.MapFrom(src => src.SomeOtherProp != null ? src.SomeOtherProp.Prop1 : null))
도움이 되었습니까?

해결책

소스 코드를 살펴본 후 설정을 찾았습니다. 이것이 버그가 아니라 실제로 구성 가능한 설정임을 확인합니다.

매핑을 구성 할 때 ..

Mapper.Initialize(x =>
{
    x.AddProfile<UIProfile>();
    x.AddProfile<InfrastructureProfile>();
    x.AllowNullDestinationValues = true; // does exactly what it says (false by default)
});

다른 팁

을 정의할 수 있습 지도를 사용하여 문자열

ITypeConverter<string, string>

고 변환할 때는 null 을 반환하는 경우 null 입니다.나는 생각에 의해 디자인에 당신을 얻을 빈 문자열차 이 자연적이고 유용한 자신을 그러나 내가 될 수 있습니다 잘못된;)

을 제공할 수 있는 더 정확하게 코드보다 위의 요청에 따라 생각하지만 당신은 무엇을하고있다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top