https://github.com/jbogard/MediatR/wiki#basics
Basics
MediatR has two kinds of messages it dispatches:
- Request/response messages, dispatched to a single handler
- Notification messages, dispatched to multiple handlers
Request/response
The request/response interface handles both command and query scenarios. First, create a message:
public class Ping : IRequest<string> { }
Next, create a handler:
public class PingHandler : IRequestHandler<Ping, string> { public Task<string> Handle(Ping request, CancellationToken cancellationToken) { return Task.FromResult("Pong"); } }
Finally, send a message through the mediator:
var response = await mediator.Send(new Ping()); Debug.WriteLine(response); // "Pong"