Flavio.Santos.NetCore.ObjectMapping
1.0.1
See the version list below for details.
dotnet add package Flavio.Santos.NetCore.ObjectMapping --version 1.0.1
NuGet\Install-Package Flavio.Santos.NetCore.ObjectMapping -Version 1.0.1
<PackageReference Include="Flavio.Santos.NetCore.ObjectMapping" Version="1.0.1" />
<PackageVersion Include="Flavio.Santos.NetCore.ObjectMapping" Version="1.0.1" />
<PackageReference Include="Flavio.Santos.NetCore.ObjectMapping" />
paket add Flavio.Santos.NetCore.ObjectMapping --version 1.0.1
#r "nuget: Flavio.Santos.NetCore.ObjectMapping, 1.0.1"
#addin nuget:?package=Flavio.Santos.NetCore.ObjectMapping&version=1.0.1
#tool nuget:?package=Flavio.Santos.NetCore.ObjectMapping&version=1.0.1
FDS.NetCore.ObjectMapping
A lightweight, fluent object mapping library for .NET with automatic property transfer and functional transformation support.
โจ Features
- ๐ Automatic property mapping by name and compatible type
- ๐ Enum โ String conversion support
- ๐งฉ Fluent
.Apply()
to customize transformations inline - ๐งช No setup, no DI, no registration required
- ๐ชถ Zero external dependencies
๐ Why Use This Package?
Unlike traditional mapping libraries that require profiles, dependency injection or runtime configuration, FDS.NetCore.ObjectMapping
offers:
- โ
Simplicity: Just call
MapTo<T>()
, no setup needed - โ
Explicit control: Chain
.Apply()
for custom logic inline - โ Readability: Improves developer experience with fluent syntax
- โ Minimalism: Great for microservices, small apps, and rapid development
- โ Safety: Handles enum โ string conversion explicitly and predictably
Whether you're mapping entities to DTOs or shaping request payloads for APIs, this package helps you do it cleanly, safely, and fluently.
๐ก When to Use
Use FDS.NetCore.ObjectMapping
when you want:
- Fast, explicit, and simple mapping (especially for small or medium apps)
- Clean code with inline overrides using
.Apply()
- Avoiding the overhead of AutoMapper-style configuration
๐ฆ Installation
dotnet add package Flavio.Santos.NetCore.ObjectMapping
โ Usage
1. Add using
using FDS.NetCore.ObjectMapping.Extensions;
2. Map automatically by property name
var dto = entity.MapTo<ReadTransactionDto>();
3. Add extra behavior with .Apply()
var transaction = dto
.MapTo<Transaction>()
.Apply(t => t.Id = Guid.NewGuid())
.Apply(t => t.CreatedAt = DateTime.Now);
๐ Enum Support
Supports string โ enum and enum โ string automatically.
Example:
Domain
public enum TransactionType { Credit, Debit }
public class Transaction
{
public TransactionType Type { get; set; }
}
DTO
public class ReadTransactionDto
{
public string Type { get; set; } = string.Empty;
}
Mapping:
var dto = transaction.MapTo<ReadTransactionDto>(); // Type will be "Credit"
๐งช Example: Create + Return
var transaction = dto
.MapTo<Transaction>()
.Apply(t => t.Id = Guid.NewGuid())
.Apply(t => t.CreatedAt = DateTime.Now);
await _repository.AddAsync(transaction);
var response = transaction.MapTo<ReadTransactionDto>();
return Result.CreateAdd(response);
๐ฆ Package Details
Property | Value |
---|---|
Package ID | Flavio.Santos.NetCore.ObjectMapping |
Target Framework | .NET 8 |
License | MIT |
Author | Flavio dos Santos |
Tags | object mapping, dto, transformation, fluent api |
Contact |
๐ License
Licensed under the MIT License.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | 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 was computed. 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. |
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.