-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Null substitution
Jimmy Bogard edited this page Nov 14, 2016
·
9 revisions
Null substitution allows you to supply an alternate value for a destination member if the source value is null anywhere along the member chain. This means that instead of mapping from null, it will map from the value you supply.
var config = new MapperConfiguration(cfg => cfg.CreateMap<Source, Dest>()
.ForMember(dest => dest.Value, opt => opt.NullSubstitute("Other Value"));
var source = new Source { Value = null };
var mapper = config.CreateMapper();
var dest = mapper.Map<Source, Dest>(source);
dest.Value.ShouldEqual("Other Value");
source.Value = "Not null";
dest = mapper.Map<Source, Dest>(source);
dest.Value.ShouldEqual("Not null");
The substitute is assumed to be of the source member type, and will go through any mapping/conversion after to the destination type.