/
vshmidt
/
masstransit
Обзор
Документация
Войти
/
vshmidt
/
masstransit
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/MassTransit.Abstractions/Mediator/MediatorRequestHandler.cs
45 строк
2 KB
jimatas
Fixed mangled markup in MediatorRequestHandler's API doc.
15 янв 2024, 17:24
15 янв 2024, 17:24
9197214
Код
Авторство
О чём код?
namespace MassTransit.Mediator { using System.Threading; using System.Threading.Tasks; /// <summary> /// A Mediator request handler base class that provides a simplified overridable method with /// a Task (void) return type /// </summary> /// <typeparam name="TRequest"></typeparam> public abstract class MediatorRequestHandler<TRequest> : IConsumer<TRequest> where TRequest : class { public Task Consume(ConsumeContext<TRequest> context) { return Handle(context.Message, context.CancellationToken); } protected abstract Task Handle(TRequest request, CancellationToken cancellationToken); } /// <summary> /// A Mediator request handler base class that provides a simplified overridable method with /// a Task<<typeparamref name="TResponse"/>> return type /// </summary> /// <typeparam name="TRequest"></typeparam> /// <typeparam name="TResponse"></typeparam> public abstract class MediatorRequestHandler<TRequest, TResponse> : IConsumer<TRequest> where TRequest : class, Request<TResponse> where TResponse : class { public async Task Consume(ConsumeContext<TRequest> context) { var response = await Handle(context.Message, context.CancellationToken).ConfigureAwait(false); await context.RespondAsync(response).ConfigureAwait(false); } protected abstract Task<TResponse> Handle(TRequest request, CancellationToken cancellationToken); } }