Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
Automapper est une bibliothèque polyvalente et puissante en C# conçue pour faciliter le mappage d'objet à objet, ce qui rend le transfert de données entre des modèles d'objets complexes plus facile et plus facile à maintenir. Dans cet article, nous allons explorer comment Automapper peut efficacement mapper des propriétés, aplatir des modèles d'objets complexes et travailler avec différents types d'objets tels que les objets du domaine utilisateur et les objets de transfert de données.
Automapper en C# est un mappeur objet-objet, un outil qui simplifie la conversion et le transfert de données entre différents types d'objets. Cet outil est particulièrement utile dans les scénarios impliquant des entités de données et leur transformation en objets de transfert de données(DTO).
Simplification du code : Automapper réduit considérablement le besoin de code manuel en automatisant le mappage des propriétés, ce qui permet d'éviter les erreurs et de gagner du temps.
Flexibilité des configurations cartographiques : Automapper permet une personnalisation détaillée des configurations de mappage, ce qui permet de répondre à un large éventail de scénarios de mappage.
Efficacité des performances : La bibliothèque est conçue pour gérer des modèles d'objets complexes et de grande taille sans surcharge de performance significative.
Pour utiliser Automapper, il faut d'abord l'installer via la console du gestionnaire de paquets, un composant de l'environnement de développement qui facilite la gestion des paquets de logiciels.
Vous pouvez facilement installer Automapper dans votre projet en exécutant une simple commande dans la console de votre gestionnaire de paquets :
Install-Package IronPdf
L'étape fondamentale de l'utilisation d'Automapper consiste à définir la configuration du mappage. Il s'agit de spécifier comment l'objet d'entrée(source) doivent être transférées à l'objet de sortie(destination).
var config = new MapperConfiguration(cfg => {
cfg.CreateMap<SourceClass, DestinationClass>();
});
IMapper mapper = config.CreateMapper();
var config = new MapperConfiguration(cfg => {
cfg.CreateMap<SourceClass, DestinationClass>();
});
IMapper mapper = config.CreateMapper();
Dim config = New MapperConfiguration(Sub(cfg)
cfg.CreateMap(Of SourceClass, DestinationClass)()
End Sub)
Dim mapper As IMapper = config.CreateMapper()
Les capacités d'Automapper vont bien au-delà de la simple mise en correspondance de biens immobiliers. Il peut gérer habilement des scénarios plus complexes.
L'une des forces d'Automapper est sa capacité à aplatir des modèles d'objets complexes. Cette fonction est particulièrement utile lorsqu'il s'agit d'objets imbriqués, car elle permet de faire correspondre ces propriétés imbriquées à une structure de classe de destination plate.
Automapper peut établir des correspondances entre différents types d'objets, y compris les objets du domaine de l'utilisateur, les DTO et même les modèles de vue, offrant ainsi une solution polyvalente pour les différents besoins en matière de transfert de données.
Pour mieux comprendre l'utilité d'Automapper, explorons quelques exemples pratiques.
Prenons l'exemple d'un scénario dans lequel nous devons faire correspondre des propriétés d'une entité utilisateur à un DTO utilisateur :
public class User
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Address { get; set; }
public string City { get; set; }
}
public class UserDTO
{
public string FullName { get; set; }
public string Address { get; set; }
public string City { get; set; }
}
// Mapping Configuration
var config = new MapperConfiguration(cfg => {
cfg.CreateMap<User, UserDTO>()
.ForMember(dest => dest.FullName, opt => opt.MapFrom(src => src.FirstName + " " + src.LastName));
});
IMapper mapper = config.CreateMapper();
public class User
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Address { get; set; }
public string City { get; set; }
}
public class UserDTO
{
public string FullName { get; set; }
public string Address { get; set; }
public string City { get; set; }
}
// Mapping Configuration
var config = new MapperConfiguration(cfg => {
cfg.CreateMap<User, UserDTO>()
.ForMember(dest => dest.FullName, opt => opt.MapFrom(src => src.FirstName + " " + src.LastName));
});
IMapper mapper = config.CreateMapper();
Public Class User
Public Property FirstName() As String
Public Property LastName() As String
Public Property Address() As String
Public Property City() As String
End Class
Public Class UserDTO
Public Property FullName() As String
Public Property Address() As String
Public Property City() As String
End Class
' Mapping Configuration
Private config = New MapperConfiguration(Sub(cfg)
cfg.CreateMap(Of User, UserDTO)().ForMember(Function(dest) dest.FullName, Function(opt) opt.MapFrom(Function(src) src.FirstName & " " & src.LastName))
End Sub)
Private mapper As IMapper = config.CreateMapper()
Dans un scénario plus complexe, mappons un objet de commande avec des détails d'utilisateur imbriqués dans un DTO de commande simplifié :
public class Order
{
public User OrderedBy { get; set; }
// Other properties...
}
public class OrderDTO
{
public string FullName { get; set; }
// Other properties...
}
// Mapping Configuration
var config = new MapperConfiguration(cfg => {
cfg.CreateMap<Order, OrderDTO>()
.ForMember(dest => dest.FullName, opt => opt.MapFrom(src => src.OrderedBy.FirstName + " " + src.OrderedBy.LastName));
});
IMapper mapper = config.CreateMapper();
public class Order
{
public User OrderedBy { get; set; }
// Other properties...
}
public class OrderDTO
{
public string FullName { get; set; }
// Other properties...
}
// Mapping Configuration
var config = new MapperConfiguration(cfg => {
cfg.CreateMap<Order, OrderDTO>()
.ForMember(dest => dest.FullName, opt => opt.MapFrom(src => src.OrderedBy.FirstName + " " + src.OrderedBy.LastName));
});
IMapper mapper = config.CreateMapper();
Public Class Order
Public Property OrderedBy() As User
' Other properties...
End Class
Public Class OrderDTO
Public Property FullName() As String
' Other properties...
End Class
' Mapping Configuration
Private config = New MapperConfiguration(Sub(cfg)
cfg.CreateMap(Of Order, OrderDTO)().ForMember(Function(dest) dest.FullName, Function(opt) opt.MapFrom(Function(src) src.OrderedBy.FirstName & " " & src.OrderedBy.LastName))
End Sub)
Private mapper As IMapper = config.CreateMapper()
Avec la version 9.0, AutoMapper est passé d'une API statique à une API statique(Mapper.Initialize
) à une API basée sur les instances. Cette modification améliore la flexibilité et convient mieux aux applications modernes, en particulier celles qui utilisent l'injection de dépendances. Si vous travaillez avec des versions antérieures à la 9.0, l'approche statique de l'API est applicable. Toutefois, pour les versions plus récentes, il est recommandé d'adopter l'API basée sur les instances, comme indiqué dans les exemples ci-dessus.
LesIron Software Suite for .NET est un paquetage robuste comprenant une série de bibliothèques, chacune servant un objectif spécifique. Il couvre des fonctionnalités telles que la création, la lecture et l'édition de PDF, la conversion de HTML en PDF et la transformation d'images en texte dans plusieurs langues. Cette suite répond à divers besoins de développement, ce qui en fait un complément polyvalent à tout projet C#.
IronPDF pour la gestion des PDF: Ce composant permet aux développeurs de créer, lire, modifier et signer des PDF. Il offre également la possibilité de convertir HTML en PDF, une fonction qui peut s'avérer particulièrement utile pour générer des rapports ou de la documentation à partir de données basées sur le web.
Traitement des fichiers IronXL.Excel(Traitement des fichiers Excel): IronXL facilite le travail avec des fichiers Excel sans avoir besoin d'Office Interop, rationalisant ainsi les tâches de manipulation et d'analyse des données.
IronOCR pour l'extraction de texte: Il permet d'extraire du texte à partir d'images et prend en charge un large éventail de 127 langues, ce qui le rend très polyvalent pour les projets internationaux.
IronBarcode pour la prise en charge des QR et des codes-barres: Une bibliothèque qui permet de lire et d'écrire des codes QR et des codes-barres, améliorant ainsi les capacités de gestion des stocks, de suivi et d'autres tâches connexes.
Alors que Automapper
excelle dans le mapping de propriétés entre différents modèles d'objets en C#,Bibliothèques d'Iron Software les outils d'automatisation étendent les fonctionnalités en proposant des outils permettant de traiter différents formats et types de données. Par exemple, après avoir utilisé Automapper pour transformer un objet de domaine utilisateur en DTO, IronPDF pourrait être utilisé pour générer un rapport complet au format PDF. De même, les données extraites ou transformées à l'aide d'Automapper pourraient être manipulées ou analysées plus avant à l'aide d'IronXL pour les opérations sur les fichiers Excel.
Automapper est un outil précieux pour les développeurs C#, car il simplifie la tâche de mise en correspondance entre les objets. Ses solides capacités en matière de mappage des propriétés, de gestion de modèles d'objets complexes et de configurations de mappage personnalisables en font un outil essentiel pour un développement logiciel efficace. Il est essentiel de comprendre les subtilités des modèles d'objets et la manière dont Automapper peut être configuré pour répondre à des besoins spécifiques afin de maximiser son potentiel dans n'importe quel projet.
Le logiciel Iron Software'sIron Suite offre diverses options de licence, y compris uneessai gratuit d'Iron Softwarepour répondre aux différents besoins des projets. Les licences sont échelonnées en Lite, Plus et Professional, ce qui permet de répondre aux besoins d'équipes de différentes tailles et d'offrir des fonctions d'assistance complètes. L'intégration de cette suite avec Automapper permet d'améliorer considérablement les projets C#, en ajoutant des capacités de traitement de données et de manipulation de documents.
9 produits de l'API .NET pour vos documents de bureau