Uso frequentemente AutoMapper per mappare oggetti Model (Dominio) su oggetti ViewModel, che vengono quindi utilizzati dalle mie viste, in un modello/modello Vista/Modello di vista.Dove dovrebbero andare le dichiarazioni 'CreateMap'?
Questo implica molte istruzioni 'Mapper.CreateMap', che devono essere tutte eseguite, ma devono essere eseguite solo una volta nel ciclo di vita dell'applicazione.
Tecnicamente, quindi, dovrei tenerli tutti in un metodo statico da qualche parte, che viene chiamato dal mio metodo Application_Start() (questa è un'applicazione ASP.NET MVC).
Tuttavia, sembra sbagliato raggruppare un sacco di problemi di mappatura in un unico punto centrale.
Specialmente quando la mappatura del codice diventa complessa e implica formattazione e altra logica.
C'è un modo migliore per organizzare il codice di mappatura in modo che sia tenuto vicino al ViewModel che interessa?
(mi è venuta un'idea - con un metodo di 'CreateMappings' su ogni ViewModel, e nel BaseViewModel, chiamando questo metodo su instantiation Tuttavia, dal momento che il metodo deve essere chiamato solo volta nel ciclo di vita dell'applicazione,. ha bisogno di una logica aggiuntiva per memorizzare nella cache un elenco di tipi ViewModel per cui è stato chiamato il metodo CreateMappings e quindi chiamarlo solo quando necessario, per ViewModels che non si trovano nell'elenco.)
Ma che ancora non risolve il problema di avere tutte le mappature per tutti i diversi modelli di view-concentrati insieme, quando avrei preferito in qualche modo legati alle classi a cui si applicano. – Jonathan