Jak wstrzyknąć AutoMapper IMappingEngine za pomocą StructureMap
Większość przykładów, które znalazłemAutomapper użyj statycznego obiektu Mapper do zarządzania odwzorowaniami typów. W przypadku mojego projektu muszę wstrzyknąć IMapperEngine jako część konstrukcji obiektu przy użyciu StructureMap, abyśmy mogli wyszydzić program odwzorowujący w testach jednostkowych, abyśmy nie mogli użyć mapera statycznego. Muszę także wspierać konfigurowanie profili AutoMapper.
Moje pytanie brzmi: jak mogę skonfigurować rejestr StructureMap, aby mógł dostarczyć instancję IMappingEngine, gdy skonstruowana zostanie instancja MyService.
Oto podpis konstruktora usługi:
public MyService(IMappingEngine mapper, IMyRepository myRepository, ILogger logger)
A oto Rejestr StructureMap
public class MyRegistry : StructureMap.Configuration.DSL.Registry
{
public MyRegistry()
{
For<IMyRepository>().Use<MyRepository>();
For<ILogger>().Use<Logger>();
//what to do for IMappingEngine?
}
}
A profil, który chcę załadować
public class MyAutoMapperProfile : AutoMapper.Profile
{
protected override void Configure()
{
this.CreateMap<MyModel, MyDTO>();
}
}