![EmitMapper: tutto bello ma come le mappiamo le liste? header image](/img/posts/default-header.jpg)
EmitMapper: tutto bello ma come le mappiamo le liste?
Vi ricordate lo scenario? bene, cosa risolviamo con la nostra configurazione? due possibili casistiche:mapperManager.GetMapper<SpecialCategory, SpecialCategoryDto> (
new MappingConfiguration()
.OnListItemMapping<Category, CategoryDto>( e =>
{
if( e.Source is SpecialCategory )
{
e.Destination = specialCategoryMapper.Map( ( SpecialCategory )e.Source );
e.Handled = true;
}
} )
.OnListItemMapping<SpecialReferencedType>( e =>
{
e.Destination = specialReferencedTypeMapper.Map( ( SpecialReferencedType )e.Source );
e.Handled = true;
} )
.DeepMap()
.ConvertUsing<Category, Int32>( ei => ei == null ? -1 : ei.Id ) );
- OnListItemMapping
: ci permette di intercettare il processo di mapping in modalità wide-scoped, quindi devo esplicitare i tipi noti ad EmitMapper e non gli eventuali tipi derivati, degli elementi di una list esposta dal nostro modello e decidere se ci interessa prendere in carico il processo di mapping; - OnListItemMapping
: ci permette di intercettare il processo di mapping in modalità narrow-scoped, quindi posso esplicitare un qualsiasi tipo e se l’item che si sta convertendo è di quel tipo specifico l’interceptor verrà invocato, degli elementi di una list esposta dal nostro modello e decidere se ci interessa prendere in carico il processo di mapping;
![Smile with tongue out](https://lh5.googleusercontent.com/-ZIuJoft89Rw/T0SloPIsrrI/AAAAAAAAB3k/GdcZAq5A9uk/wlEmoticon-smilewithtongueout_2_20.png)
.m