2
条件映射我想要做类似下面,我想知道,如果有人知道如何做到这一点:AutoMapper - 对于类型
Mapper.CreateMap<Worksheet, V2WorksheetModel>().If(pWorksheet=> pWorksheet.VisitLevel == 2);
Mapper.CreateMap<Worksheet, V3WorksheetModel>().If(pWorksheet=> pWorksheet.VisitLevel == 3);
Worksheet entityVisit2 = MyService.GetWorksheetByID(100); //visit level 2
Worksheet entityVisit3 = MyService.GetWorksheetByID(150); //visit level 3
WorksheetModelBase modelBase1 = Mapper.Map(entityVisit2);
WorksheetModelBase modelBase2 = Mapper.Map(entityVisit3);
Assert.True(modelBase is V2WorksheetModel);
Assert.True(modelBase2 is V3WorksheetModel);
所以我想Mapper.Map()来返回WorksheetModelBase的正确派生类型。这可能吗? (我知道我可以在调用代码中执行if语句,但如果我可以使用这一个Mapper.Map行来返回正确的类,那很酷。)
谢谢!
我结束了使用来自该拿了类型参照目标工作表型基转换器类派生的两个转换器。但是,我需要考虑使用ConstructUsing()。我的主要问题是试图兑现DRY,我的解决方案是实现这一目标的一种方式,但您的工作甚至更好。谢谢! – diegohb 2012-03-17 21:35:32