MediatR
In-process messaging / CQRS.
What is MediatR
MediatR sends requests to a single handler (and notifications to many), keeping controllers thin.
Install
dotnet add package MediatRUsage
public record GetUser(int Id) : IRequest<User>;
public class Handler : IRequestHandler<GetUser, User> {
public Task<User> Handle(GetUser r, CancellationToken ct) => /* ... */;
}
var user = await mediator.Send(new GetUser(1));Docs
Official documentation: MediatR.