Хороший подход к этому заключается в использовании инъекции зависимостей и впрыскивании картографа на компоненты, которым необходим доступ к нему. Этот новый подход к AutoMapper также хорош для модульного тестирования, так как вы можете просто издеваться над интерфейсами.
В нашем случае мы используем AutoFaq как контейнер IoC и имеют AutoMapper настроить так:
builder.RegisterInstance(AutoMapperConfig.GetConfiguredMapper()).As<IMapper>();
GetConfiguredMapper возвращают IMapper путем вызова метода CreateMapper в MapperConfiguration.
Затем вы можете позволить AutoFaq выполнить всю проводку и инсталляцию конструктора.
Если вы действительно хотите сохранить старый подход, вы всегда можете перенести IMapper в статический класс в приложение.
Я определенно предпочитаю новую версию, так как это очень просто издеваться и тестировать наш код.
Спасибо, DI с Autofac - очень хорошее решение. – zpul
Рад помочь. Мы также занимаемся этим рефакторингом, поэтому идеи все еще довольно свежие. Мое единственное беспокойство - иметь только один экземпляр картографа для всего приложения, мне любопытно посмотреть, как он развивается. – avdomingos