2011-01-18 2 views
1

Если предположить, что у меня есть сложный тип, например:AutoMapper экземпляры сложных типов с StructureMap

interface IFoo 
{ 
    IBar {get;set;} 
} 

и отображается в какой-то DTO с помощью AutoMapper, т.е. Mapper.CreateMap<IFoo, FooDto>()

Как я должен настроить AutoMapper так, чтобы он будет использовать StructureMap, чтобы получить экземпляр IFoo, а также IBar при сопоставлении с FooDto на IFoo?

ответ

2

Попробуйте

Mapper.CreateMap<FooDto, IFoo>() 
    .ConstructUsing(fooDto => ObjectFactory.GetInstance<IFoo>()) 
    .AfterMap((fooDto, iFoo) => iFoo.IBar = ObjectFactory.GetInstance<IBar>()); 

ли IBar зависимость в конструкторе IFoo? Затем вы можете пропустить шаг AfterMap().

Смежные вопросы