EmitMapper: a questo punto sbizzarriamoci
Molto semplicemente vogliamo che l’utilizzatore possa spiegare come mappare i tipi presenti in una lista, senza necessariamente dover intercettare il processo di conversione. MatchListItemTypemapperManager.GetMapper<SpecialCategory, SpecialCategoryDto> ( new MappingConfiguration() .MatchListItemType<SpecialReferencedType, SpecialReferencedTypeDto>() .DeepMap() );
A questo punto potreste avere un interessante problema, se il dominio di partenza è gestito da NHibernate i vostri item non saranno mai del tipo “descritto” perché quanto iterate gli elementi in realtà state iterando i proxy generati da NHibernate, per ovviare a questo problema la configurazione vi permette di esplicitare un TypeResolver che è una Func
new MappingConfiguration()Figo , se poi pensiamo questa cosa combinata con la possibilità di iniettare un container per IoC nella configurazione abbiamo la massima flessibilità.
.MatchListItemType<SpecialReferencedType, SpecialReferencedTypeDto>()
.ResolveListItemTypeUsing( o => o.GetType() )
.m