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