У меня автоматическая настройка, подобная этой
services.AddAutoMapper(typeof(MappingAssembly).Assembly, typeof(AssemblyWithExtensionMethods).Assembly);
И в одном из моих профилей
public class UserModuleMapper : Profile {
public UserModuleMapper() {
IncludeSourceExtensionMethods(typeof(UserGroup));
CreateMap<UserGroup, UserGroupDto>(MemberList.Destination);
}
}
И я определил метод расширения как
public static List<string> GetRoleNames(this UserGroup group) {
return group.UserGroupRoles.Select(x => x.Role.Name).ToList();
}
У меня есть свойство в DTO, определенное как
public List<string> RoleNames { get; set; }
В соответствии с документацией к автомату, я сделал следующие предположения:
- IncludeSourceExtensionMethods, которые включают методы расширения при отображении
- при отображении он также будет искать методы с префиксом
Get
Но когда я проверяю расширение автоматического средства, я получаю ошибку для несопоставленного свойства
Несопоставленные свойства: RoleNames
Чего не хватает в моей конфигурации, automapper
должен определить метод расширения.
Я пытался (а) удалить GET из имени метода, но все равно не работает (б) передвигать CreateMap
до или после IncludeSourceExtensionMethods
, чтобы увидеть, имеет ли значение последовательность, но ничего из этого не помогло.