Solución:
En términos generales, si un método basado en tareas no devuelve nada, puede devolver una tarea completada.
public Task Handle(CreatePersonCommand message, CancellationToken cancellationToken)
{
return Task.CompletedTask;
}
Ahora, en términos de MediatR, un valor necesidades te será devuelto. En caso de que no tenga valor, puede utilizar Unit
:
public Task<Unit> Handle(CreatePersonCommand message, CancellationToken cancellationToken)
{
return Task.FromResult(Unit.Value);
}
o, en caso de algún código asincrónico en alguna parte
public async Task<Unit> Handle(CreatePersonCommand message, CancellationToken cancellationToken)
{
await Task.Delay(100);
return Unit.Value;
}
La firma de la clase debería ser:
public class CreatePersonHandler : IRequestHandler<CreatePersonCommand>
que es la abreviatura de
public class CreatePersonHandler : IRequestHandler<CreatePersonCommand, Unit>
Solución alternativa para cualquiera que no quiera usar Unit por algún motivo. Puede crear una clase denominada VoidResult o EmptyResult y luego usarla como devolución para todas las solicitudes que no devuelvan nada.
public class CreatePersonHandler : IRequestHandler<CreatePersonCommand, VoidResult>
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)