Interface IMediator
- Namespace
- Stratara.Abstractions.Mediator
- Assembly
- Stratara.Abstractions.dll
Dispatches a request to its matching handler through any registered IPipelineBehavior<TRequest> or IPipelineBehavior<TRequest, TResult> chain.
public interface IMediator
- Extension Methods
Examples
Dispatch a command and a query through the same mediator scope:
public sealed record CreateOrder(Guid CustomerId, decimal Amount) : ICommand;
public sealed record GetOrder(Guid OrderId) : IQuery<Order>;
await mediator.HandleAsync(new CreateOrder(customerId, 42m), cancellationToken);
var order = await mediator.HandleAsync(new GetOrder(orderId), cancellationToken);
Remarks
Behaviors run outer-to-inner in DI registration order. Register the mediator with
services.AddMediator() and add handlers via AddCommandHandlersFromAssemblyContaining<T>() /
AddQueryHandlersFromAssemblyContaining<T>().
For role-gated dispatch, register with services.AddAuthorizingMediator<TAuthorizationProvider>()
instead — the registered IMediator instance will additionally implement
IAuthorizingMediator, enforcing any [RequireRole] attributes on the request type
before the inner pipeline runs.
Methods
HandleAsync<TResult>(IRequest<TResult>, CancellationToken)
Dispatch a request that returns a result.
Task<TResult> HandleAsync<TResult>(IRequest<TResult> request, CancellationToken cancellationToken = default)
Parameters
requestIRequest<TResult>The request instance.
cancellationTokenCancellationTokenPropagated to handler + pipeline behaviors.
Returns
- Task<TResult>
The result produced by the inner pipeline.
Type Parameters
TResultThe result type produced by the handler.
Exceptions
- InvalidOperationException
No IQueryHandler<TRequest, TResult> registered for the concrete request type.
HandleAsync<TRequest>(TRequest, CancellationToken)
Dispatch a request that returns no result.
Task HandleAsync<TRequest>(TRequest request, CancellationToken cancellationToken = default) where TRequest : class, IRequest
Parameters
requestTRequestThe request instance.
cancellationTokenCancellationTokenPropagated to handler + pipeline behaviors.
Returns
Type Parameters
TRequestThe concrete request type — must be a reference type implementing IRequest.
Exceptions
- InvalidOperationException
No ICommandHandler<TRequest> registered for the request type.