Я часто использую AutoMapper для сопоставления объектов Model (Domain) с объектами ViewModel, которые затем используются моими представлениями, в шаблоне Model / View / View-Model.
Это включает в себя множество операторов Mapper.CreateMap, которые должны выполняться все, но должны выполняться только один раз в жизненном цикле приложения.
Технически, тогда я должен хранить их где-нибудь в статическом методе, который вызывается из моего метода Application_Start () (это приложение ASP.NET MVC).
Тем не менее, кажется неправильным объединять множество разных картографических задач в одном центральном месте.
Особенно, когда отображение кода становится сложным и требует форматирования и другой логики.
Есть ли лучший способ организовать код отображения так, чтобы он был близок к ViewModel, к которому он относится?
(Мне пришла в голову одна идея - иметь метод CreateMappings на каждой ViewModel и в BaseViewModel, вызывая этот метод при создании экземпляра. Однако, поскольку метод должен вызываться только один раз Жизненный цикл приложения требует дополнительной логики для кэширования списка типов ViewModel, для которых был вызван метод CreateMappings, а затем вызывать его только при необходимости для ViewModel, которых нет в этом списке.)