У меня есть преобразователь
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();
}
}
.Result
выполняет синхронную операцию и блокирует поток.
Есть ли какие-либо обходные пути в этой ситуации, например, будет хорошо иметь некоторые IAsyncValueResolver
public interface IAsyncValueResolver<in TSource, in TDestination, TDestMember>
{
Task<TDestMember> ResolveAsync(TSource source, TDestination destination, TDestMember destMember, ResolutionContext context);
}