FlowR.Mapper
2.0.1
dotnet add package FlowR.Mapper --version 2.0.1
NuGet\Install-Package FlowR.Mapper -Version 2.0.1
<PackageReference Include="FlowR.Mapper" Version="2.0.1" />
<PackageVersion Include="FlowR.Mapper" Version="2.0.1" />
<PackageReference Include="FlowR.Mapper" />
paket add FlowR.Mapper --version 2.0.1
#r "nuget: FlowR.Mapper, 2.0.1"
#:package FlowR.Mapper@2.0.1
#addin nuget:?package=FlowR.Mapper&version=2.0.1
#tool nuget:?package=FlowR.Mapper&version=2.0.1
FlowR.Mapper - Complete AutoMapper Alternative
The best free object mapper for .NET — 95%+ AutoMapper parity, MIT licensed, zero cost.
🎯 What's New - Complete Feature Parity
This version includes ALL the missing AutoMapper features:
✅ New Features Added
- ForPath - Map to nested destination properties ⭐
- IValueResolver - Reusable member resolver classes ⭐
- SetMappingOrder - Control property mapping order ⭐
- UseDestinationValue - Preserve existing values ⭐
- ForAllOtherMembers - Config for unmapped members ⭐
🚀 Quick Start
dotnet add package FlowR.Mapper
// 1. Create profile
public class UserProfile : MapperProfile
{
public override void Configure(IProfileConfigurator cfg)
{
cfg.CreateMap<UserEntity, UserDto>()
.ForMember(d => d.FullName, opt => opt.MapFrom(s => $"{s.FirstName} {s.LastName}"));
}
}
// 2. Register
builder.Services.AddFlowRMapper(typeof(Program).Assembly);
// 3. Use
mapper.Map<UserEntity, UserDto>(user);
📚 All Features - 95% AutoMapper Parity
✅ ForMember • ForPath • ForAllMembers • ForAllOtherMembers
✅ Ignore • ReverseMap • Flatten • DeepMap
✅ IncludeBase • PreCondition • AllowNull
✅ IValueResolver • IMappingAction • ResolutionContext
✅ SetMappingOrder • UseDestinationValue
✅ ConvertUsing • ConstructUsing • ProjectTo
✅ ValidateAllMembers • MaxDepth • NullSubstitute
📁 Clean Code Organization
src/FlowR.Mapper/
├── Interfaces/ # Public contracts (IMapper, IValueResolver)
├── Configuration/ # Mapping setup (MapperProfile)
├── Internal/ # Implementation details
├── Core/ # Main engine (FlowRMapper, ResolutionContext)
├── Extensions/ # Extension methods
└── Exceptions/ # Exception types
tests/FlowR.Mapper.Tests/
├── MapperTests.cs # 38+ core tests
├── AdvancedMappingFeaturesTests.cs # Advanced feature tests
├── TestModels/ # Organized test models
├── Resolvers/ # Reusable resolvers
└── Actions/ # Mapping actions
💡 Example: All Features Combined
public class EmployeeProfile : MapperProfile
{
public override void Configure(IProfileConfigurator cfg)
{
cfg.CreateMap<EmployeeEntity, EmployeeDto>()
.ForMember(d => d.FullName, opt => opt.MapFrom<FullNameResolver>())
.ForPath(d => d.Address.City, opt => opt.MapFrom(s => s.Contact.Address.City))
.SetMappingOrder(d => d.Salary, 1)
.ForMember(d => d.LastModified, opt => opt.UseDestinationValue())
.PreCondition(src => src.IsActive)
.AfterMap((src, dest, ctx) => dest.ProcessedAt = DateTime.UtcNow);
}
}
📝 License
MIT - Free for personal and commercial use
Built with ❤️ for the .NET community
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
-
net6.0
-
net7.0
-
net8.0
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.0.1 | 95 | 4/26/2026 |
| 2.0.1-pr.2.e01be0e | 56 | 4/26/2026 |
| 2.0.1-pr.2.6a21d10 | 53 | 4/26/2026 |
| 2.0.1-pr.2.2016d97 | 66 | 4/26/2026 |
| 2.0.0 | 106 | 4/24/2026 |
| 2.0.0-pr.1.a918b9c | 57 | 4/24/2026 |
| 2.0.0-pr.1.41228f3 | 60 | 4/24/2026 |
| 2.0.0-pr.1.32adda1 | 52 | 4/24/2026 |
| 2.0.0-pr.1.141c345 | 53 | 4/24/2026 |
| 1.0.1 | 95 | 4/24/2026 |
| 1.0.1-alpha.834a300 | 53 | 4/24/2026 |
| 1.0.0 | 122 | 3/19/2026 |
| 1.0.0-alpha.91aeea3 | 62 | 4/23/2026 |