AotObjectMapper.Mapper
0.2.0
See the version list below for details.
dotnet add package AotObjectMapper.Mapper --version 0.2.0
NuGet\Install-Package AotObjectMapper.Mapper -Version 0.2.0
<PackageReference Include="AotObjectMapper.Mapper" Version="0.2.0" />
<PackageVersion Include="AotObjectMapper.Mapper" Version="0.2.0" />
<PackageReference Include="AotObjectMapper.Mapper" />
paket add AotObjectMapper.Mapper --version 0.2.0
#r "nuget: AotObjectMapper.Mapper, 0.2.0"
#:package AotObjectMapper.Mapper@0.2.0
#addin nuget:?package=AotObjectMapper.Mapper&version=0.2.0
#tool nuget:?package=AotObjectMapper.Mapper&version=0.2.0
AotObjectMapper
AotObjectMapper is a C# Roslyn source generator for compile-time object mapping.
This project was created primarily as a personal learning exercise and proof of concept. And may not be suitable for production use until v1.0.0
The main goals of this project are:
- Gaining hands-on experience with Roslyn incremental source generators
- Designing an AOT- and trimming-friendly alternative to reflection-based mappers
- Providing feature parity with mature mapping libraries such as AutoMapper or Mapster
- Exploring compile-time code generation, diagnostics, and analyzers
- Experimenting with API design and developer experience in attribute driven tooling
- Handling complex mapping scenarios such as recursion, reference preservation, enum strategies, and custom member mappings
<p align="center"> <img src="/docs/static/banner1280x640.png" alt="AotObjectMapper banner" height="256"> </p>
Installation
AotObjectMapper is distributed as a NuGet package.
Via .NET CLI
dotnet add package AotObjectMapper
Via Visual Studio
Right-click your project → Manage NuGet Packages
Search for AotObjectMapper
Install the latest version
Both methods will automatically add AotObjectMapper.Abstractions.
Quick Start
[GenerateMapper]
[Map<User, UserDto>]
public partial class UserMapper;
When the project is built, the mapper will generate a static Map method on UserMapper which will map Id, FirstName, MiddleName and LastName.
The remaining members cannot be mapped automatically because they differ in type and/or name, or do not exist on one of the classes. This can be fixed using mapper configuration which is all covered in the documentation.
Multiple Map attributes can be added to a single mapper class:
[GenerateMapper]
[Map<User, UserDto>, Map<UserDto, User>]
public partial class UserMapper;
For more information visit the Docs
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- AotObjectMapper.Abstractions (>= 0.2.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.