我試圖使用AutoMapper從屬性名稱前有前綴的類中獲取數據,並將其映射到沒有這些前綴的第二個類。但是,我不一定要總是去掉那個前綴:我只是希望它爲這個特定的映射做它。AutoMapper無法識別配置文件特定的前綴
我的源類看起來是這樣的:
public class AdvancedSearchFilterDataModel
{
// ....
public string ServiceMeterNumber { get; set; }
// ....
}
我的目標類看起來是這樣的:
[DataContract]
public class ServicesAdvancedSearchFilterData : AdvancedSearchFilterData
{
// ....
[DataMember]
public string MeterNumber { get; set; }
// ....
}
當我嘗試映射這樣的價值觀,它的工作原理:
Mapper.Configuration.RecognizePrefixes("Service");
Mapper.CreateMap<AdvancedSearchFilterDataModel, ServicesAdvancedSearchFilterData>();
ServicesAdvancedSearchFilterData servciesFilterData =
Mapper.Map<ServicesAdvancedSearchFilterData>(model);
但我只希望「服務」被識別爲某些映射的前綴,因爲它也被用作prope的正常部分rty名稱在其他映射中。我試圖用一個配置文件來處理這個問題,但並沒有工作 - 沒有數據被映射:
Mapper.CreateProfile("ServicePrefix").RecognizePrefixes("Service");
Mapper.CreateMap<AdvancedSearchFilterDataModel, ServicesAdvancedSearchFilterData>()
.WithProfile("ServicePrefix");
ServicesAdvancedSearchFilterData servciesFilterData =
Mapper.Map<ServicesAdvancedSearchFilterData>(model);
我怎樣才能使它識別前綴,只有當我想要它,或者使用配置文件或其他一些技術? (我也有,我要去給需要它認識到以同樣的方式其他映射其他前綴。)
謝謝。我最終以不同的方式實現了這一點,所以我無法對此進行測試,並親自驗證它是否有效,但我會暫時將其標記爲「正確」,並希望對下一個人有幫助誰遇到了這個。 – JJS
在我的愚見中,我發現這個解決方案達到了複雜性的關鍵點。我會手動做。 –
@JJS你能分享一下你實現它的不同方式嗎? – xr280xr