- Simplified nested mappings. Now you can use this syntax:
mapping.Relate(domain => domain.Address.City, gui => gui.Address.City);
See also: Nested mapping and Flattening
and Flattening a large structure
- When autorelating, you can now be case insensitive if specified.
- Added a whole lot of converters. You find them using the static methods on the Converting-class
Bugfixes and Enhancements
- When using interfaces and base classes in a class that we map between (the objects actual type/class is a specified version of the base type/interface), you will get an error when flattening, or mapping towards left. This has been fixed.
- MapperVerification handles by default all built in converters (not forcing you to add custom randomizers). Meaning if you have had problems with mapperverification when using converters, this is probably fixed now.
- You can send a Mapping as a parameter on the RelateTowardsLeft and RelateTowardsRight methods.
- Exception handling:
- When passing in null to the mapper (mapping.Map(x,y)) you got an unhandled exception. Now you get a friendly GlueException. (Done TV)
- Lists needs creators: When adding a relation between two lists of nested types, and the mapping between the nested types does not contain the needed creators, a sensible exception is now thrown when relating. Previously this has caused an unhandled exception when mapping. (Done TV)
- Converters tended to crash on short, ushort and uint.
- Issue # 2761: Decimal does not behave as a primitive type.
There is also a few minor breaking changes. These are "minor" because it is basically hiding classes that has been exposed by mistake, and most probably you have not used them, since it makes no sense to use them:
- PropertyAccessor and MethodAccessor was public by mistake, made it internal.
- IntStringConverter is made internal
- Some unhandled exceptions are now caught and thrown as developer friendly GlueExceptions (gives better explanations)