30 Nov Automapper, mapping objet – objet
Automapper est une librairie permettant de faire du mapping objet – objet.
Je m’explique, vous avez une classe A qui comporte des propriétés, et une classe B qui comporte elle aussi ses propres propriétés, cette librairie permet de transformer un objet A en un objet B.
Ci dessous un exemple de son utilisation :
Public Class MaClasseA Private _prop1 As Integer Public Property Prop1() As Integer Get Return _prop1 End Get Set(ByVal value As Integer) _prop1 = value End Set End Property Private _prop2 As String Public Property Prop2() As String Get Return _prop2 End Get Set(ByVal value As String) _prop2 = value End Set End Property Private _prop3 As Boolean = False Public Property Prop3() As Boolean Get Return _prop3 End Get Set(ByVal value As Boolean) _prop3 = value End Set End Property Private _prop4 As Boolean = False Public Property Prop4() As Boolean Get Return _prop4 End Get Set(ByVal value As Boolean) _prop4 = value End Set End Property Private _items As List(Of MaClasseA) Public Property Items() As List(Of MaClasseA) Get Return _items End Get Set(ByVal value As List(Of MaClasseA)) _items = value End Set End Property End Class
Public Class MaClasseB Private _value As Integer Public Property Value() As Integer Get Return _value End Get Set(ByVal value As Integer) _value = value End Set End Property Private _text As String Public Property Text() As String Get Return _text End Get Set(ByVal value As String) _text = value End Set End Property Private _checked As Boolean = False Public Property Checked() As Boolean Get Return _checked End Get Set(ByVal value As Boolean) _checked = value End Set End Property Private _childs As List(Of MaClasseB) Public Property Childs() As List(Of MaClasseB) Get Return _childs End Get Set(ByVal value As List(Of MaClasseB)) _childs = value End Set End Property End Class
Nous allons donc maintenant copier une liste d’objets de type MaClasseA en liste d’objets MaClasseB en 2 secondes montre en main !
Tout d’abord, définissez les mappages entre les classes :
AutoMapper.Mapper.CreateMap(Of MaClasseA, MaClasseB)() _ .ForMember(Function(dest) dest.Value, Sub(y) y.MapFrom(Function(src) src.Prop1)) _ .ForMember(Function(dest) dest.Text, Sub(y) y.MapFrom(Function(src) src.Prop2)) _ .ForMember(Function(dest) dest.Items, Sub(y) y.MapFrom(Function(src) src.Childs))
Une fois celà fait, nous allons donc copier nos objets de type MaClasseA dans des objets de type MaClasseB :
'Pour cette exemple, maListeA est une liste remplie d'objets de type MaClasseA 'On défini une nouvelle liste vierge d'objets de classe MaClasseB Dim maListeB As New List(Of MaClasseB) maListeB = AutoMapper.Mapper.Map(maListeA, maListeB)
Et voilà, nous avons une liste B remplies d’objets 🙂
Pour télécharger Automapper, rendez-vous sur http://automapper.org/
Pas de commentaire