Когда я пытаюсь выполнить какое-либо настраиваемое сопоставление и иногда сопоставить целевое свойство со значением NULL, Automapper генерирует исключение, пытаясь создать целевой объект свойства.
Я загрузил упрощенный проект в github, чтобы продемонстрировать: https://github.com/dreing1130/AutoMapper_Investigation
Это началось, когда я обновил Automapper 6 до 8.
Если я вернул новую версиюобъект вместо нуля работает нормально (мое приложение ожидает, что это значение будет нулевым в этих случаях)
Я также подтвердил, что точка останова внутри моей карты достигается каждый раз, когда вызывается отображение, чтобы убедиться, что не былоне является скомпилированным планом выполнения
public class Source
{
public IEnumerable<string> DropDownValues { get; set; }
public string SelectedValue { get; set; }
}
public class Destination
{
public SelectList DropDown { get; set; }
}
CreateMap<Source, Destination>()
.ForMember(d => d.DropDown, o => o.MapFrom((src, d) =>
{
return src.DropDownValues != null
? new SelectList(src.DropDownValues,
src.SelectedValue)
: null;
}));
Ожидаемый результат: Destination.DropDown равен null, когда Source.DropdownValues равен нулю
Фактический результат: выброшено исключение
"Система.Web.Mvc.SelectList должен иметь конструктор с 0 аргументами или только с необязательными аргументами. Имя параметра: тип "