#c# #asp.net-core #mapping #automapper #resolver
#c# #asp.сетевое ядро #отображение #автомат #распознаватель
Вопрос:
Класс карты типов Automapper предоставляет подробные сведения о сопоставлении по элементам. Но по какой-то причине он, похоже, не оценивает никаких лямбда-выражений, чтобы получить все карты свойств.
В результате сопоставления, выполняемые с помощью пользовательских распознавателей/ лямбд, недоступны. Следовательно, свойство SourceMember для каждого экземпляра PropertyMap равно null.
private string GetSourceName(PropertyMap propertyMap) { var sourceName = propertyMap.SourceMember?.Name; if (string.IsNullOrEmpty(sourceName)) { sourceName = propertyMap.CustomMapExpression?.Body.ToString(); } return sourceName; }
Здесь имя источника всегда пустое.
Комментарии:
1. Очевидно, что иногда нет элемента-источника. Например
MapFrom(_=gt;1)
. Так что это ожидаемо.2. @LucianBargaoanu Есть ли способ получить информацию о свойствах источника -gt; Информация о свойствах назначения с этим ограничением?
3. Если
SourceMember
делает то, что вам нужно, используйте его, в противном случае ищите в другом месте.