Есть IValueResolver
public class MyValueResolver : IValueResolver<Entity, Dto, List<InnerDto>>
{
private readonly IService _service;
public MyValueResolver(IService service)
{
_service = service;
}
public List<InnerDto> Resolve(
Entity source,
Dto destination,
List<InnerDto> destMember,
ResolutionContext context)
{
IEnumerable<InnerDto> innerDtos =
_service.GetAsync(/*...*/).Result; // .Result block thread.
return innerDtos.ToList();
}
}
В теле Resolve есть вызов асинхронного метода. Сейчас можно использовать свойство .Result, однако это блокирует поток что не есть хорошо.
Если какой либо аналог асинхронный IValueResolver. Асинхронный IMappingAction тоже будет отлично.
Update: Используется это так:
CreateMap<Entity, Dto>()
.ForMember(x => x.InnerDtos, opt => opt.MapFrom<MyValueResolver>());
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости