Mapperly Versions Save

A .NET source generator for generating object mappings. No runtime reflection.

v4.0.0-next.1

4 days ago

🚨 Breaking Changes

  • ignore indexed properties by @latonz in #1351
  • add enum underlying type conversion by @latonz in #1352
  • strict mappings by default by @latonz in #1353
  • support mapping properties in foreach mappings by @latonz in #1364

🚀 Features

  • Refactor member matching and member mapping building process by @latonz in #1334
  • Introduce MapValueAttribute to map constant values and method provided values by @latonz in #1335

🐛 Bug Fixes

  • adjust diagnostic messages to be correct when applied with MapValue by @latonz in #1332
  • allow same-name members with different casings by @latonz in #1350
  • Replace invalid MapPropertyAttribute constructors with valid versions by @latonz in #1354

Full Changelog: https://github.com/riok/mapperly/compare/v3.6.0...v4.0.0-next.0 Breaking changes migration guide: Breaking Changes

v3.6.0

2 weeks ago

3.6.0 (2024-06-18)

Bug Fixes

  • correct syntax in nameof clause of throw null exceptions (#1263) (3d43a6f)
  • fixes using the wrong object factory when multiple factories with the same target type but different source types are used (#1313) (51aa1da)
  • In disable nullable reference type contexts do not assume nullable IQueryable generic types (#1268) (56b03d2)
  • prefer coalesce operator over if-else to simplify generated source code (#1262) (b4548d2)

Features

  • add a warning when a referenced mapping types do not match (#1256) (2fd22e3)
  • Adds an option to include all members of a single member (#1245) (b69b2a9)
  • Map from source object (#1247) (d790055)

v3.6.0-next.2

1 month ago

3.6.0-next.2 (2024-06-03)

Bug Fixes

  • fixes using the wrong object factory when multiple factories with the same target type but different source types are used (#1313) (51aa1da)
  • In disable nullable reference type contexts do not assume nullable IQueryable generic types (#1268) (56b03d2)

v3.6.0-next.1

2 months ago

3.6.0-next.1 (2024-05-03)

Bug Fixes

  • correct syntax in nameof clause of throw null exceptions (#1263) (3d43a6f)
  • prefer coalesce operator over if-else to simplify generated source code (#1262) (b4548d2)

Features

  • add a warning when a referenced mapping types do not match (#1256) (2fd22e3)
  • Adds an option to include all members of a single member (#1245) (b69b2a9)
  • Map from source object (#1247) (d790055)

v3.5.1

2 months ago

3.5.1 (2024-04-23)

Bug Fixes

  • Add missing generic constraints to generated methods (#1227) (5324612)
  • Do not discover mapping methods marked as [ObjectFactory] automatically (#1234) (1cd6814)
  • expand target type new when inlining in queryable projection mappings (#1238) (840b6e1)
  • extend queryable project inlined arguments with full namespace (#1233) (de3b332)
  • respect user mapping attributes in generic mappings (#1230) (f753ceb)
  • use correct nullable types when referencing named mappings (#1237) (b3f79e8)

v3.5.1-next.2

2 months ago

3.5.1-next.2 (2024-04-15)

Bug Fixes

  • Do not discover mapping methods marked as [ObjectFactory] automatically (#1234) (1cd6814)
  • expand target type new when inlining in queryable projection mappings (#1238) (840b6e1)
  • extend queryable project inlined arguments with full namespace (#1233) (de3b332)
  • respect user mapping attributes in generic mappings (#1230) (f753ceb)
  • use correct nullable types when referencing named mappings (#1237) (b3f79e8)

v3.5.1-next.1

2 months ago

3.5.1-next.1 (2024-04-09)

Bug Fixes

  • Add missing generic constraints to generated methods (#1227) (5324612)

v3.5.0

2 months ago

3.5.0 (2024-04-05)

Bug Fixes

  • correctly assign null if target is nullable instead of throwing (#1191) (f08b7b4)
  • do not generalise enumerable dictionary value types (#1155) (b4d5e74)
  • Increase RMG060 default severity from info to warning (#1173) (3cba05b)
  • map init only collection in existing target mapping correctly (#1190) (c9b4b17)
  • resolve user mappings correctly when reference handling is enabled (#1162) (d303198)

Features

  • add diagnostic if no members are mapped (#1129) (732cec4)
  • Add MapperIgnoreMemberAttribute to ignore members at declaration (#1143) (ebce68e)
  • Add option to disable automatic discovery of user implemented mapping method and to include/exclude specific user implemented mapping methods (#1070) (4e4937c)
  • allow property mappings to use specific conversion (#1072) (61716b9)
  • allow usage of mappings in MapPropertyAttribute.Use which are attributed with UserMappingAttribute (#1151) (1f0b3c5)
  • allow user implemented mappings to be marked as default (#1071) (79f60cd)
  • improve generated method names by including generic type names (#1168) (fb482a0)
  • Inline user implemented queryable mapping expressions (#1169) (530066f), closes #953
  • report a diagnostic for invalid MapPropertyAttribute usages (#1130) (b8b9e2a)
  • rework generic type matching (#1199) (1e78844)
  • support required mapping strategies on enums (#1073) (edc4933)
  • validate usage of MapProperty attributes on enum and queryable mapping methods (#1074) (fbe7894)

v3.5.0-next.4

3 months ago

3.5.0-next.4 (2024-03-27)

Bug Fixes

  • correctly assign null if target is nullable instead of throwing (#1191) (f08b7b4)
  • map init only collection in existing target mapping correctly (#1190) (c9b4b17)

Features

v3.5.0-next.3

3 months ago

3.5.0-next.3 (2024-03-18)

Bug Fixes

  • Increase RMG060 default severity from info to warning (#1173) (3cba05b)

Features

  • improve generated method names by including generic type names (#1168) (fb482a0)
  • Inline user implemented queryable mapping expressions (#1169) (530066f), closes #953