web-dev-qa-db-ja.com

IRequestHandlerがvoidを返す

以下のコードをご覧ください:

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

期待どおりに機能します。つまり、ハンドラーに到達し、trueを返します。ハンドラーが何も返さない場合の対処方法を教えてください。私はこれをしたいです:

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

私はこれをグーグルで過去2時間過ごしました。たとえば、ここでは MediatRパイプラインにvoid/Task応答を登録 を、ここでは https://github.com/jbogard/MediatR/issues/2 を確認しました。

10
w0051977

何らかの理由でUnitを使用したくない人のための回避策ソリューション。 VoidResultまたはEmptyResultという名前のクラスを作成し、それを何も返さないすべての要求の戻りとして使用できます。

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