Большинство примеров, которые я нашел для Automapper, используют статический объект Mapper для управления сопоставлениями типов. Для моего проекта мне нужно ввести IMapperEngine как часть построения объекта с помощью StructureMap, чтобы мы могли издеваться над компоновщиком в модульных тестах, чтобы мы не могли использовать статический mapper. Мне также необходимо поддерживать настройку профилей AutoMapper.
Мой вопрос в том, как настроить реестр StructureMap, чтобы он мог предоставить экземпляр IMappingEngine, когда будет создан экземпляр MyService.
Вот подпись конструктора службы:
public MyService(IMappingEngine mapper, IMyRepository myRepository, ILogger logger)
И вот реестр StructureMap
public class MyRegistry : StructureMap.Configuration.DSL.Registry
{
public MyRegistry()
{
For<IMyRepository>().Use<MyRepository>();
For<ILogger>().Use<Logger>();
//what to do for IMappingEngine?
}
}
И профиль, который я хочу загрузить
public class MyAutoMapperProfile : AutoMapper.Profile
{
protected override void Configure()
{
this.CreateMap<MyModel, MyDTO>();
}
}