Map<IDataReader, MyType>(sourceReader, destinationObject) 不更新 destinationObject

Map<IDataReader, MyType>(sourceReader, destinationObject) not updating destinationObject

在 DataReaderMapping 单元测试中,更改 Establish_context 方法(Mapper.Map 行)

        protected override void Establish_context()
        {
            Mapper.CreateMap<IDataRecord, DTOObject>()
                .ForMember(dest => dest.Else, options => options.MapFrom(src => src.GetDateTime(src.GetOrdinal(FieldName.Something))));

            _dataRecord = new DataBuilder().BuildDataRecord();
            var result = new DTOObject();
            Mapper.Map<IDataRecord, DTOObject>(_dataRecord, result);
            _result = result;
        }

我已将其追溯到 DataReaderMapper.cs 中的 MapPropertyValues 方法。

除了在单元测试的 ForMember 扩展中定义的 'Else' 之外,context.TypeMap.GetPropertyMaps() 没有任何属性的 属性 映射。

我尝试使用 ForAllMembers 'trick' 属性 映射来添加缺少的属性,但是这些 属性 映射没有 _sourceValueResolvers。

关于如何解决的建议?

DataReaderMapper.CreateBuilder 中发出的 IL 总是创建一个新对象,而不是可能在 ResolutionContext 中使用 DestinationValue。

AutoMapper 的拉取请求 https://github.com/AutoMapper/AutoMapper/pull/721/files