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>();
    }
}

questionAnswers(4)

yourAnswerToTheQuestion