隨着AutoMapper 4.2的發佈,靜態映射器接口已經過時,新推薦的方法是使用DI/IoC在需要的地方注入映射器。它是否仍然有可能調用mapper.map的地圖?
我正在將我的項目升級到此版本,並且已將我的配置移至Profile
類的實現中。我遇到的問題是我的幾張地圖依賴於能夠撥打額外的Map
電話。
這裏是地圖問題:
CreateMap<ProjectEntity, FavoritesNode>()
.ConstructUsing((ProjectEntity src) => Mapper.Map<FavoritesGroupModel>(src))
.IgnoreMember(dest => dest.DisplayValue);
CreateMap<ProjectEntity, FavoritesGroupModel>()
.MapMember(dest => dest.DisplayValue, src => src.ProjectName)
.MapMember(dest => dest.Items, src => src.Tasks);
CreateMap<ProjectTaskEntity, FavoritesNode>()
.ConstructUsing((ProjectTaskEntity src) => Mapper.Map<FavoritesComboItemModel>(src))
.IgnoreMember(dest => dest.DisplayValue);
CreateMap<ProjectTaskEntity, FavoritesComboItemModel>()
.MapMember(dest => dest.DisplayValue, src => src.ProjectTaskName)
.MapMember(dest => dest.Key, src => src.Id)
.IgnoreMember(dest => dest.IsFavorite);
從FavoritesNode
添加一些情況下,無論是FavoritesComboItemModel
和FavoritesGroupModel
繼承和ProjectEntity
有ProjectTaskEntity
列表。這些映射用於將相當簡單的Project結構調整爲收藏夾模型用於完全動態的樹結構。
因此,給定這種配置是否有任何方法,我仍然可以在新的實例API中進行這些地圖調用?
* IgnoreMember
和MapMember
是我自己對相應的ForMember變體的快捷擴展。
太棒了,謝謝你添加一個涵蓋被問到的直接問題的答案。 – Phaeze