10.0 Upgrade Guide

Release notes.

All collections are mapped by default, even if they have no setter

You’ll have to explicitly ignore those you don’t want mapped. See also this.

Matching constructor parameters will be mapped from the source, even if they are optional

You can always rename things or use an explicit MapFrom.

Context.Mapper.Map overloads that receive a context were removed

Not needed, because the context is passed by default, so you can change the context instance you already have.

UseDestinationValue is now inherited by default

You can override that with DoNotUseDestinationValue.

AllowNull allows you to override per member AllowNullDestinationValues and AllowNullCollections

This used to be ignored for Map. Now it’s consistent with ProjectTo.

The ResolutionContext no longer has a public constructor

You can test the entire Map operation.

Mapping from dynamic in .NET 4.6.1

Due to a refactoring of IMapper, you might need to add a cast to object when mapping from dynamic.

Source validation

Only simple source members expressions are considered, MapFrom(d => d.Member, s => s.SourceMember).


When reaching MaxDepth, destination collections are null/empty, they used to contain null values.

String based MapFrom-s are reversed now, also applies to attribute mapping

You can always not use it and explicitly create the reverse map. Or ignore the reversed member.

ReverseMap will also reverse the naming conventions

You can always not use it and explicitly create the reverse map.