AutoMapper создает сложные типы с помощью StructureMap - PullRequest
1 голос
/ 18 января 2011

Предполагая, что у меня сложный тип, например:

interface IFoo
{
  IBar {get;set;}
}

и он сопоставлен с некоторым DTO с помощью AutoMapper, т.е. Mapper.CreateMap<IFoo, FooDto>()

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

1 Ответ

2 голосов
/ 18 января 2011

Попробуйте

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

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

...