So injizieren Sie AutoMapper IMappingEngine mit StructureMap

Die meisten Beispiele, für die ich gefunden habeAutomapper Verwenden Sie das statische Mapper-Objekt zum Verwalten von Typzuordnungen. Für mein Projekt muss ich eine IMapperEngine als Teil der Objektkonstruktion mit StructureMap einfügen, damit wir den Mapper in Komponententests verspotten können, damit wir den statischen Mapper nicht verwenden können. Ich muss auch die Konfiguration von AutoMapper-Profilen unterstützen.

Meine Frage ist, wie ich die StructureMap-Registrierung so konfigurieren kann, dass sie eine Instanz von IMappingEngine bereitstellen kann, wenn eine Instanz von MyService erstellt wird.

Hier ist die Signatur des Service-Konstruktors:

public MyService(IMappingEngine mapper, IMyRepository myRepository, ILogger logger)

Und hier ist die StructureMap Registry

public class MyRegistry : StructureMap.Configuration.DSL.Registry
{
    public MyRegistry()
    {
        For<IMyRepository>().Use<MyRepository>();
        For<ILogger>().Use<Logger>();
        //what to do for IMappingEngine?
    }
}

Und das Profil möchte ich laden

public class MyAutoMapperProfile : AutoMapper.Profile
{
    protected override void Configure()
    {
        this.CreateMap<MyModel, MyDTO>();
    }
}

Antworten auf die Frage(4)

Ihre Antwort auf die Frage