Skip to content

v3.0.0

Compare
Choose a tag to compare
@github-actions github-actions released this 07 Aug 08:40
24614c0

3.0.0 (2023-08-07)

Bug Fixes

  • Nullable<T>.Value is no longer treated as a member (#575) (b238481)
  • Add comment (#496) (b3e1657)
  • add private does not obscure test (#554) (f6d8d34)
  • allow reference handling for generic and runtime target type mapping methods (#508) (34b237f)
  • clone array when deepcloning is enabled and target is an IEnumerable (#431) (082d877)
  • disable warning when iterating nullable array elements (#592) (8f37f44)
  • exclude explicit casts when source type is object (#400) (3af9cc9)
  • existing dictionary and enumerable mapping should respect enabled conversion types (#459) (86f48a2)
  • generate nameof compatible member access (#539) (92673db)
  • handle internal visibility correctly (#597) (5d4596a)
  • ignore user implemented generic methods (#423) (408d03f)
  • improve performance for member resolution (#603) (641c1bf)
  • incorrect initialization for nullable nested memberpath unflattening (#591) (9b74e8f)
  • lambdas should use correct scopes to generate names (#411) (e5d9bb2)
  • make all attributes sealed (#614) (24614c0)
  • map existing target sets correct (#500) (38e6556)
  • only use instance constructors to create new object instances (#458) (848fb45)
  • prevent ctormapping using inaccessible constructors (#456) (125742e)
  • prevent duplicates attributes and base types for nested mappers (#544) (44667c8)
  • prevent generation of empty if not null statements (#576) (8cbeff1)
  • prevent mapping backing field (#608) (d768dbb)
  • prevent throw throw being generated. (#415) (3c41c84)
  • remove obsolete MapperIgnoreAttribute (#611) (c7a5099)
  • required/init properties not using PropertyNameMappingStrategy (#505) (#556) (564a43e)
  • seal all configuration attributes (#403) (cb837e0)
  • support queryable projection mappings for derived type mappings (#412) (98a44a0)
  • throw NullReferenceException for element access (#414) (78b2736)
  • update IsImmutable to identify valid types on framework (#388) (b9a1f19)
  • use ToList/ToArray to clone enumerable interfaces (#432) (f947cbf)

Features

  • accept destination type as mapping method parameter (#398) (b17f666)
  • add AllowNullPropertyAssignment option to disable assigning null values to nullable properties (#584) (0ccc734)
  • add IgnoreObsoleteMembers (#392) (def10cf)
  • add option to ignore enum values (#536) (3e2a2c8)
  • add support for Span and Memory mappings (#425) (ac254ca)
  • add support for user defined generic mapping methods (#461) (ddbc516)
  • add tuple mapping support (#467) (208e8b4)
  • Added MapEnumValueAttribute and support for explicit named enum value mapping (#468) (64e6c9d)
  • added source generator benchmark (#419) (b6836b2)
  • cache attribute symbols (#478) (fbe8ba1)
  • diagnostic if an incompatible language version is used (#566) (38332a6)
  • directly assign System.Uri and System.Version when deep cloning (#440) (c845b43)
  • explicit enum mappings for byValue enum mappings (#489) (029dae2)
  • ISet and IReadOnlySet support (#502) (9550ae4)
  • Map all accessible members by default (#597) (#612) (3d2ed69)
  • optimize BuildMemberPathCandidates performance (#480) (34b926b)
  • optimize enum ByValueCheckDefined strategy and support flags (#510) (602c79d)
  • support derived type configuration inheritance (#509) (66124f8)
  • support derived type mappings (#366) (11995f0)
  • Support enum mapping is defined check and fallback values (#491) (f0065c8)
  • support for strict enum mappings (#356) (b13d364)

BREAKING CHANGES

  • mark all attributes as sealed
  • Include accessible internal and private members in mappings
  • Obsolete MapperIgnoreAttribute is removed and needs to be replaced with MapperIgnoreTargetAttribute

An upgrade guide is available here.