High-performance Mediator and Mapper components for .NET 9
$ dotnet add package Biss.MediatorImplementação de alta performance do padrão Mediator para .NET 9 usando Source Generators.
dotnet add package Biss.Mediator
using Biss.Mediator.Abstractions;
// Definir command
public record CreateUserCommand(string Name, string Email) : ICommand<UserId>;
// Criar handler
public class CreateUserHandler : ICommandHandler<CreateUserCommand, UserId>
{
public async Task<Result<UserId>> Handle(
CreateUserCommand request,
CancellationToken cancellationToken)
{
// Sua lógica aqui
var userId = new UserId(Guid.NewGuid());
return Result<UserId>.Success(userId);
}
}
using Biss.Mediator.Extensions.DependencyInjection;
builder.Services.AddMediator(typeof(Program).Assembly);
public class UserService
{
private readonly IMediator _mediator;
public UserService(IMediator mediator)
{
_mediator = mediator;
}
public async Task<UserId> CreateUser(string name, string email)
{
var command = new CreateUserCommand(name, email);
var result = await _mediator.Send(command);
if (result.IsSuccess)
return result.Value;
throw new Exception(result.Error.Message);
}
}
Este pacote requer:
Biss.Mediator.AbstractionsMIT License