web-dev-qa-db-fra.com

IRequestHandler retourne nul

Veuillez consulter le code ci-dessous:

public class CreatePersonHandler
    : IRequestHandler<CreatePersonCommand,bool>
{
    public async Task<bool> Handle(CreatePersonCommand message, CancellationToken cancellationToken)
    {
        return true;
    }
}

Cela fonctionne comme prévu, c'est-à-dire que le hander est atteint et renvoie vrai. Comment gérer le scénario dans lequel le gestionnaire ne renvoie rien? Je veux faire ça:

public async void Handle(CreatePersonCommand message, CancellationToken cancellationToken)
{
    //don't return anything
}

J'ai passé les deux dernières heures à googler ça. Par exemple, j'ai regardé ici: Enregistrer un pipeline MediatR avec réponse void/Task et ici: https://github.com/jbogard/MediatR/issues/2 .

10
w0051977

Solution de contournement pour toute personne qui ne souhaite pas utiliser Unit pour une raison quelconque. Vous pouvez créer une classe nommée VoidResult ou EmptyResult, puis l'utiliser comme retour pour toutes les demandes qui ne renvoient rien.

public class CreatePersonHandler : IRequestHandler<CreatePersonCommand, VoidResult>
0
M.Erkan Çam