Свойство AutoMapper SourceMember для PropertyMap равно нулю

#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 делает то, что вам нужно, используйте его, в противном случае ищите в другом месте.