Pisum.Mediator 1.9.0
Pisum.Mediator
A .NET mediator library implementing the Mediator pattern for request/response and publish/subscribe messaging.
Supported Frameworks
- .NET 8.0
- .NET 9.0
- .NET 10.0
Installation
dotnet add package Pisum.Mediator
Usage
Registration
services.AddMediator(cfg => {
cfg.RegisterServicesFromAssembly(typeof(MyHandler).Assembly);
});
Request/Response
public record GetUserQuery(int Id) : IRequest<User>;
public class GetUserHandler : IRequestHandler<GetUserQuery, User>
{
public Task<User> HandleAsync(GetUserQuery request, CancellationToken cancellationToken = default)
{
// Handle the request
}
}
// Send request
var user = await mediator.Handle(new GetUserQuery(1));
Notifications
public record UserCreatedEvent(int UserId) : INotification;
public class UserCreatedHandler : INotificationHandler<UserCreatedEvent>
{
public Task Handle(UserCreatedEvent notification, CancellationToken cancellationToken)
{
// Handle the notification
}
}
// Publish notification
await mediator.Publish(new UserCreatedEvent(1));
Pipeline Behaviors
public class LoggingBehavior<TRequest, TResponse> : IPipelineBehavior<TRequest, TResponse>
where TRequest : IRequest<TResponse>
{
public async Task<TResponse> Handle(TRequest request, RequestHandlerDelegate<TResponse> next, CancellationToken cancellationToken)
{
// Before
var response = await next();
// After
return response;
}
}
// Register
services.AddMediator(cfg => {
cfg.RegisterServicesFromAssembly(typeof(MyHandler).Assembly);
cfg.AddOpenBehavior(typeof(LoggingBehavior<,>));
});
Showing the top 20 packages that depend on Pisum.Mediator.
| Packages | Downloads |
|---|---|
|
Pisum.Result.Validation
Pisum Result Validation Library.
|
0 |
|
Pisum.Result.Validation
Pisum Result Validation Library.
|
7 |