J'utilise fréquemment AutoMapper pour mapper des objets Model (Domain) aux objets ViewModel, qui sont ensuite consommés par mes Views, dans un modèle Model/View/View-Model.Où vont les instructions 'CreateMap'?
Cela implique de nombreuses instructions 'Mapper.CreateMap', qui doivent toutes être exécutées, mais doivent être exécutées uniquement une fois dans le cycle de vie de l'application. Techniquement, alors, je devrais les garder tous dans une méthode statique quelque part, qui est appelée à partir de ma méthode Application_Start() (il s'agit d'une application ASP.NET MVC).
Cependant, il semble erroné de regrouper un grand nombre de problèmes de cartographie différents dans un même emplacement central.
Surtout lorsque le code de mappage devient complexe et implique un formatage et d'autres logiques.
Existe-t-il une meilleure façon d'organiser le code de mappage afin qu'il reste proche du ViewModel concerné?
(je suis venu avec une idée - ayant une méthode « CreateMappings » sur chaque ViewModel, et dans le BaseViewModel, appelant cette méthode sur instanciation Cependant, étant donné que la méthode ne doit être appelée une fois dans le cycle de vie de l'application,. il a besoin d'une logique supplémentaire pour mettre en cache une liste de types ViewModel pour lesquels la méthode CreateMappings a été appelée, puis l'appeler uniquement si nécessaire, pour ViewModels qui ne figurent pas dans cette liste.)
Mais cela ne marche toujours pas le problème d'avoir toutes les correspondances pour tous les différents vue-modèles lumped ensemble, quand je préfère avoir eux en quelque sorte liés aux classes auxquelles ils s'appliquent. – Jonathan