Die meisten Beispiele, die ich für Automapper gefunden habe, verwenden das statische Mapper-Objekt für die Verwaltung von Typzuordnungen. Für mein Projekt muss ich eine IMapperEngine als Teil der Objektkonstruktion mithilfe von StructureMap einfügen, damit wir den Mapper in Komponententests überspionieren können, sodass wir den statischen Mapper nicht verwenden können. Ich muss auch die Konfiguration von AutoMapper-Profilen unterstützen.So injizieren Sie AutoMapper IMappingEngine mit StructureMap
Meine Frage ist, wie kann ich die StructureMap Registrierung so konfigurieren, dass es eine Instanz von IMappingEngine liefern kann, wenn eine Instanz von MyService erstellt wird. Hier
ist der Service-Konstruktor Unterschrift:
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 I
public class MyAutoMapperProfile : AutoMapper.Profile
{
protected override void Configure()
{
this.CreateMap<MyModel, MyDTO>();
}
}
@Sebastian, vielen Dank für die Bearbeitung, den Code zu beschönigen. Ich wusste nicht, wie ich es machen sollte. –