Core Interfaces
IMediator
The main interface for sending messages.
public interface IMediator
{
// --- Notify overloads ---
Task Notify<TMessage>(TMessage message, CancellationToken cancellationToken = default)
where TMessage : notnull;
Task Notify<TMessage>(object? key, TMessage message, CancellationToken cancellationToken = default)
where TMessage : notnull;
Task Notify<TMessage>(IEnumerable<TMessage> messages, CancellationToken cancellationToken = default)
where TMessage : notnull;
Task Notify<TMessage>(object? key, IEnumerable<TMessage> messages, CancellationToken cancellationToken = default)
where TMessage : notnull;
// --- Send overloads ---
Task Send<TMessage>(TMessage message, CancellationToken cancellationToken = default)
where TMessage : notnull;
Task Send<TMessage>(object? key, TMessage message, CancellationToken cancellationToken = default)
where TMessage : notnull;
Task Send<TMessage>(IEnumerable<TMessage> messages, CancellationToken cancellationToken = default)
where TMessage : notnull;
Task Send<TMessage>(object? key, IEnumerable<TMessage> messages, CancellationToken cancellationToken = default)
where TMessage : notnull;
// --- Request overloads ---
Task<TResponse> Request<TMessage, TResponse>(TMessage message, CancellationToken cancellationToken = default)
where TMessage : notnull;
Task<TResponse> Request<TMessage, TResponse>(object? key, TMessage message, CancellationToken cancellationToken = default)
where TMessage : notnull;
// --- RequestStream overloads ---
IAsyncEnumerable<TResponse> RequestStream<TMessage, TResponse>(TMessage message, CancellationToken cancellationToken = default)
where TMessage : notnull;
IAsyncEnumerable<TResponse> RequestStream<TMessage, TResponse>(object? key, TMessage message, CancellationToken cancellationToken = default)
where TMessage : notnull;
}
ICommandHandler<TMessage>
Handler for commands.
public interface ICommandHandler<in TMessage> : IHandler<TMessage, Task>
{
Task Handle(TMessage message, CancellationToken cancellationToken = default);
}
IRequestHandler<TMessage, TResponse>
Handler for requests.
public interface IRequestHandler<in TMessage, TResponse> : IHandler<TMessage, Task<TResponse>>
{
Task<TResponse> Handle(TMessage message, CancellationToken cancellationToken = default);
}
INotificationHandler<TMessage>
Handler for notifications.
public interface INotificationHandler<in TMessage> : IHandler<TMessage, Task>
{
Task Handle(TMessage message, CancellationToken cancellationToken = default);
}
IStreamHandler<TMessage, TResponse>
Handler for streams.
public interface IStreamHandler<in TMessage, out TResponse> : IHandler<TMessage, IAsyncEnumerable<TResponse>>
{
IAsyncEnumerable<TResponse> Handle(TMessage message, CancellationToken cancellationToken = default);
}