Я пытаюсь сопоставить DataTable
с DtoObject
с помощью AutoMapper. Это прекрасно работает, только когда я пытаюсь добавить пользовательское сопоставление для определенного поля, оно не отображается.
с использованием пакетов nuget:
- AutoMapper
- AutoMapper.Data
Настройка (с использованием единицы):
container.RegisterInstance<IMapper>(new AutoMapperConfiguration().Configure().CreateMapper());
public class AutoMapperBootstrap : Profile
{
public AutoMapperBootstrap()
{
CreateMap<IDataReader, DtoObject>()
.ForMember(dest => dest.SomeField, opt => opt.MapFrom(src => src.GetDateTime(0)));
}
}
public class AutoMapperConfiguration
{
public MapperConfiguration Configure()
{
var config = new MapperConfiguration(cfg =>
{
cfg.AddDataReaderMapping();
cfg.AddProfile<AutoMapperBootstrap>();
});
return config;
}
}
Отображение:
private IEnumerable<DtoObject> DataTableReintegratieGegevensToIEnumerable(DataTable dt)
{
return _mapper.Map<IDataReader, IEnumerable<DtoObject>>(dt.CreateDataReader());
}
Объект:
public class DtoObject
{
public DateTime? SomeField { get; set; }
...
}
Все поля отображаются правильно, за исключением SomeField
. Есть идеи?