AutoMapper使用StructureMap实例化复杂类型

时间:2011-01-18 15:28:02

标签: .net structuremap automapper

假设我有一个复杂的类型,例如:

interface IFoo
{
  IBar {get;set;}
}

并使用AutoMapper将其映射到某些DTO,即Mapper.CreateMap<IFoo, FooDto>()

我应该如何配置AutoMapper,以便在从FooDto映射到IFoo时使用StructureMap来获取IFoo和IBar的实例?

1 个答案:

答案 0 :(得分:2)

尝试

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

IBar是IFoo构造函数中的依赖吗?然后,您可以跳过AfterMap()步骤。