0

我正在尝试使用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()方法的各种重载,但仍然没有。我怀疑我缺少一些基本的配置步骤。除了基本的动态对象映射之外,官方文档没有提供很多示例

4

0 回答 0