我将使用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);
但是我只希望“Service”被识别为某些映射的前缀,因为它在其他映射中也作为属性名称的正常部分使用。我尝试使用配置文件来处理此问题,但是这没有起作用 - 没有数据被映射:
Mapper.CreateProfile("ServicePrefix").RecognizePrefixes("Service");
Mapper.CreateMap<AdvancedSearchFilterDataModel, ServicesAdvancedSearchFilterData>()
.WithProfile("ServicePrefix");
ServicesAdvancedSearchFilterData servciesFilterData =
Mapper.Map<ServicesAdvancedSearchFilterData>(model);
我该如何让它只在我需要的时候才识别前缀,可以使用配置文件或其他技术吗?(我还有其他前缀需要用相同的方式进行映射。)