我正在尝试使用AutoMapper从动态对象映射到类类型,其中动态对象在字段名称中具有下划线,而目标类型类具有拼写相同但没有下划线的属性。
源动态对象如下所示:
new ExpandoObject { CENSUS_YR = 2001, BIRTH_DATE = '1998-10-02' }
目标类型的类如下所示:
new TDest { CENSUSYR, BIRTH_DATE }
我尝试了以下方法,但似乎不起作用:
var mapperConfig = new MapperConfiguration(cfg => {
cfg.ReplaceMemberName("_", "");
// also tried this
cfg.AddMemberConfiguration().AddName<ReplaceName>(name => name.AddReplace("_", ""));
});
mapperConfig.AssertConfigurationIsValid();
var mapper = mapperConfig.CreateMapper();
var mappedRecords = dynamicRecordsSource.Select(r => mapper.Map<TDest>(r)).ToArray();
上面的代码导致mappedRecords数组中的所有项目都具有空值或默认属性值。我也尝试了该.Map()方法的各种重载,但仍然没有。我怀疑我缺少一些基本的配置步骤。除了基本的动态对象映射之外,官方文档没有提供很多示例