pisum

Pisum.Mediator (1.10.0)

Published 2026-04-14 13:51:56 +02:00 by mschnecke

Installation

dotnet nuget add source --name pisum --username your_username --password your_token 
dotnet add package --source pisum --version 1.10.0 Pisum.Mediator

About this package

Pisum Mediator Library.

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<,>));
});

Dependencies

ID Version Target Framework
Microsoft.Extensions.DependencyInjection.Abstractions 10.0.5 net10.0
Microsoft.Extensions.DependencyInjection.Abstractions 8.0.2 net8.0
Microsoft.Extensions.DependencyInjection.Abstractions 9.0.14 net9.0
Details
NuGet
2026-04-14 13:51:56 +02:00
4
pisum.net
43 KiB
Assets (2)
Versions (1) View all
1.10.0 2026-04-14