INTRODUCTION · MAPPEReQuantic.MappereQuantic.Mapper transforme un objet en un autre sans réflexion : le code de mappage est généré à la compilation, si bien que ce qui s'exécute est le code que vous auriez écrit à la main.
Aperçu
Il gère les mappages de propriétés complexes, les agrégations et vos propres transformations, le tout par générateurs de code Roslyn plutôt qu'à l'exécution.L'agrégation de propriétés, la vérification des types à la compilation, la configuration par attribut et le support de l'injection de dépendances sont là d'emblée.
Installer
shell
dotnet add package eQuantic.Mapper
Ce qu'elle fait
Sans réflexionChaque mappage est généré à la compilation, par un générateur de code Roslyn.
Agrégation de propriétésCombinez plusieurs propriétés source en une seule propriété de destination, avec plus d'une douzaine de types d'agrégation.
Sûreté des typesLes types sont vérifiés à la compilation, si bien qu'un écart est une erreur de compilation et non une surprise en production.
Rapide par constructionDu code généré avec le moins d'allocations possible, dans la forme dont le JIT a besoin pour l'intégrer.
Configuration par attributLe mappage est déclaré là où se trouve la propriété, et aucun code répétitif n'est à maintenir au pas.
Mappage asynchroneSupport asynchrone complet, jeton d'annulation compris.
Sans réflexionChaque mappage est généré à la compilation, par un générateur de code Roslyn.
Agrégation de propriétésCombinez plusieurs propriétés source en une seule propriété de destination, avec plus d'une douzaine de types d'agrégation.
Sûreté des typesLes types sont vérifiés à la compilation, si bien qu'un écart est une erreur de compilation et non une surprise en production.
Rapide par constructionDu code généré avec le moins d'allocations possible, dans la forme dont le JIT a besoin pour l'intégrer.
Configuration par attributLe mappage est déclaré là où se trouve la propriété, et aucun code répétitif n'est à maintenir au pas.
Mappage asynchroneSupport asynchrone complet, jeton d'annulation compris.
Démarrage rapide
Déclarer les modèles — La propriété de destination dit d'où elle vient, et comment plusieurs sources s'y combinent.
C#
public class UserSource{ public string FirstName { get; set; } = string.Empty; public string LastName { get; set; } = string.Empty; public decimal Salary { get; set; } public decimal Bonus { get; set; }} public class UserDestination{ [MapFrom(typeof(UserSource), new[] { nameof(UserSource.FirstName), nameof(UserSource.LastName) }, MapperPropertyAggregation.ConcatenateWithSpace)] public string FullName { get; set; } = string.Empty; [MapFrom(typeof(UserSource), new[] { nameof(UserSource.Salary), nameof(UserSource.Bonus) }, MapperPropertyAggregation.Sum)] public decimal TotalIncome { get; set; }}
Générer le mapper — Un attribut sur une classe partielle, et le générateur écrit le mappage.
C#
[Mapper(typeof(UserSource), typeof(UserDestination))]public partial class UserMapper : IMapper{} var builder = WebApplication.CreateBuilder(args);builder.Services.AddMappers(); var mapper = mapperFactory.GetMapper<UserSource, UserDestination>()!;var result = mapper.Map(userSource);
Agréger plusieurs sources — Le même attribut accepte une agrégation différente pour chaque cas.
C#
public class PersonDestination{ [MapFrom(typeof(PersonSource), new[] { nameof(PersonSource.FirstName), nameof(PersonSource.LastName) }, MapperPropertyAggregation.ConcatenateWithSpace)] public string FullName { get; set; } = string.Empty; [MapFrom(typeof(PersonSource), new[] { nameof(PersonSource.Salary), nameof(PersonSource.Bonus) }, MapperPropertyAggregation.Sum)] public decimal TotalIncome { get; set; } [MapFrom(typeof(PersonSource), new[] { nameof(PersonSource.Salary), nameof(PersonSource.Bonus) }, MapperPropertyAggregation.Max)] public decimal HighestComponent { get; set; }}
Surface publique
ESPACE DE NOMS
SURFACE PUBLIQUE
MapFromAttribute
Déclare d'où vient la valeur d'une propriété de destination, et comment les sources s'agrègent.
MapperAttribute
Marque la classe partielle que le générateur doit remplir avec un mappage entre deux types.
MapperPropertyAggregation
Les types d'agrégation : aucun, concaténer, somme, maximum, minimum, moyenne, et d'autres.
Vous préférez lire du code ?
Chaque paquet est sous licence MIT et public, et les exemples sont prêts à copier-coller.
Prêt à livrer quelque chose de réel ?
Réservez un appel de découverte de 30 minutes. Dans l'heure, nous vous dirons si nous sommes le bon partenaire — ou qui l'est.
Prêt à livrer quelque chose de réel ?
Réservez un appel de découverte de 30 minutes. Dans l'heure, nous vous dirons si nous sommes le bon partenaire — ou qui l'est.
eQuantic
Nous construisons des produits, des bibliothèques et des logiciels de qualité entreprise qui passent à l'échelle mondiale. Un laboratoire technologique basé au Portugal.
eQuantic
Nous construisons des produits, des bibliothèques et des logiciels de qualité entreprise qui passent à l'échelle mondiale. Un laboratoire technologique basé au Portugal.
eQuantic
Nous construisons des produits, des bibliothèques et des logiciels de qualité entreprise qui passent à l'échelle mondiale. Un laboratoire technologique basé au Portugal.
© 2026 eQuantic Tech. Tous droits réservés.