AutoMapper: создайте экземпляр целевого типа если источник == пустой указатель

Действительно ли возможно настроить AutoMapper для возврата нового экземпляра целевого типа, если исходный объект является пустым?

Source source = null;
Dest d1 = AutoMapper.Mapper.Map<Source, Dest>(source);
// d1 == null

// I'm looking for a way to configure AutoMapper to
// eliminate this code:
Dest d2 = AutoMapper.Mapper.Map<Source, Dest>(source) ?? new Dest();
13
задан M4N 4 August 2010 в 18:11
поделиться

1 ответ

Отвечая на свой вопрос (частично):

AutoMapper имеет свойство конфигурации с именем AllowNullDestinationValues ​​, для которого по умолчанию установлено значение true . Установив для него значение false , я получаю поведение, показанное в вопросе, например:

Mapper.Configuration.AllowNullDestinationValues = false;

//...

Source source = null;
Dest d = AutoMapper.Mapper.Map<Source, Dest>(source);
// d is now a new instance of Dest

Это решение работает нормально для простых типов, где типы источника и назначения хорошо отображаются. У меня все еще есть проблемы со сложными сопоставлениями (я обновлю вопрос, чтобы показать пример).

18
ответ дан 1 December 2019 в 22:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: