Skip to main content
Table of Contents

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

request IRequest<TResult>

The request instance.

cancellationToken CancellationToken

Propagated to handler + pipeline behaviors.

Returns

Task<TResult>

The result produced by the inner pipeline.

Type Parameters

TResult

The 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

request TRequest

The request instance.

cancellationToken CancellationToken

Propagated to handler + pipeline behaviors.

Returns

Task

Type Parameters

TRequest

The concrete request type — must be a reference type implementing IRequest.

Exceptions

InvalidOperationException

No ICommandHandler<TRequest> registered for the request type.