忽略ResolveUsing
重載採取IValueResolver,並且僅在這2種方法尋找:AutoMapper:MapFrom和ResolveUsing有什麼區別?
void ResolveUsing(Func<TSource, object> resolver);
void MapFrom<TMember>(Expression<Func<TSource, TMember>> sourceMember);
這些2之間的主要差別似乎是ResolveUsing
需要Func<TSource, object>
,而MapFrom需要一個Expression<Func<TSource, TMember>>
。
然而,在實際使用的這些方法lambda表達式一個客戶端代碼,他們似乎是可互換的:
Mapper.CreateMap<SourceType, DestType>() // uses ResolveUsing
.ForMember(d => d.DestPropX, o => o.ResolveUsing(s => s.SourcePropY));
Mapper.CreateMap<SourceType, DestType>() // uses MapFrom
.ForMember(d => d.DestPropX, o => o.MapFrom(s => s.SourcePropY));
那麼最終是上述2個選擇之間的區別?一個比另一個快嗎?一個是比另一個更好的選擇,如果是的話,何時/爲什麼?
這個問題簡單地解決了我的另一個問題。 – 2015-07-01 15:42:20