Como injetar AutoMapper IMappingEngine com StructureMap
A maioria dos exemplos que encontrei paraAutomapper use o objeto Mapper estático para gerenciar mapeamentos de tipos. Para o meu projeto, eu preciso injetar um IMapperEngine como parte da construção do objeto usando o StructureMap para que possamos zombar do mapeador em testes de unidade para que não possamos usar o mapeador estático. Eu também preciso suportar a configuração de perfis do AutoMapper.
Minha pergunta é como eu posso configurar o registro StructureMap para que ele possa fornecer uma instância do IMappingEngine quando uma instância do MyService é construída.
Aqui está a assinatura do construtor Service:
public MyService(IMappingEngine mapper, IMyRepository myRepository, ILogger logger)
E aqui está o registro StructureMap
public class MyRegistry : StructureMap.Configuration.DSL.Registry
{
public MyRegistry()
{
For<IMyRepository>().Use<MyRepository>();
For<ILogger>().Use<Logger>();
//what to do for IMappingEngine?
}
}
E o perfil que quero carregar
public class MyAutoMapperProfile : AutoMapper.Profile
{
protected override void Configure()
{
this.CreateMap<MyModel, MyDTO>();
}
}