Skip to content

Commit c755b9d

Browse files
authored
Merge pull request #3334 from lbargaoanu/value_transformers_nullable
The source type must be assignable to the type of the transformation
2 parents b46747d + 706c83c commit c755b9d

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

src/AutoMapper/ValueTransformerConfiguration.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public ValueTransformerConfiguration(Type valueType, LambdaExpression transforme
1616
public LambdaExpression TransformerExpression { get; }
1717

1818
public bool IsMatch(IMemberMap memberMap)
19-
=> memberMap.DestinationType.IsAssignableFrom(ValueType);
19+
=> ValueType.IsAssignableFrom(memberMap.SourceType) && memberMap.DestinationType.IsAssignableFrom(ValueType);
2020
}
2121

2222
public static class ValueTransformerConfigurationExtensions

src/UnitTests/ValueTransformers.cs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -320,4 +320,29 @@ public void Should_transform_value()
320320
dest.Value.ShouldBe("Jimmy was cool and now is straight up dope");
321321
}
322322
}
323+
public class TransformingNullable : AutoMapperSpecBase
324+
{
325+
public class Source
326+
{
327+
public int Value { get; set; }
328+
public int? NotNull { get; set; }
329+
public int? Null { get; set; }
330+
}
331+
public class Dest
332+
{
333+
public int Value { get; set; }
334+
public int? NotNull { get; set; }
335+
public int? Null { get; set; }
336+
}
337+
protected override MapperConfiguration Configuration { get; } = new MapperConfiguration(cfg =>
338+
cfg.CreateMap<Source, Dest>().AddTransform<int>(source=>source+1).AddTransform<int?>(source => source == null ? null : source + 2));
339+
[Fact]
340+
public void Should_transform_value()
341+
{
342+
var dest = Mapper.Map<Source, Dest>(new Source { NotNull = 0 });
343+
dest.Value.ShouldBe(1);
344+
dest.Null.ShouldBeNull();
345+
dest.NotNull.ShouldBe(2);
346+
}
347+
}
323348
}

0 commit comments

Comments
 (0)