Jaber.Mediator.Abstractions 0.0.4

dotnet add package Jaber.Mediator.Abstractions --version 0.0.4
                    
NuGet\Install-Package Jaber.Mediator.Abstractions -Version 0.0.4
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Jaber.Mediator.Abstractions" Version="0.0.4" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Jaber.Mediator.Abstractions" Version="0.0.4" />
                    
Directory.Packages.props
<PackageReference Include="Jaber.Mediator.Abstractions" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Jaber.Mediator.Abstractions --version 0.0.4
                    
#r "nuget: Jaber.Mediator.Abstractions, 0.0.4"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Jaber.Mediator.Abstractions@0.0.4
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Jaber.Mediator.Abstractions&version=0.0.4
                    
Install as a Cake Addin
#tool nuget:?package=Jaber.Mediator.Abstractions&version=0.0.4
                    
Install as a Cake Tool

Jaber.Mediator.Abstractions

Last Commit .NET

Implementacao simples do padrao Mediator para .NET, com suporte a DI via Microsoft.Extensions.DependencyInjection.

Indice

Por que usar

  • Fluxo simples para request/handler, sem dependencias extras.
  • Registro automatico de handlers via DI.
  • Separacao clara entre contratos e implementacao.

Pacotes

Pacote Descricao Quando usar
Mediator Implementacao do mediator e extensoes de registro. Quando voce precisa do runtime.
Mediator.Abstractions Contratos (IMediator, IRequest<T>, IHandler<TRequest, TResponse>). Quando deseja somente as interfaces.

Instalacao

Instale os contratos:

dotnet add package Jaber.Mediator.Abstractions

Uso rapido

  1. Defina um request e um handler:
using Jaber.Mediator.Abstractions;

public sealed class CreateAccountRequest : IRequest<string>
{
    public string Username { get; init; } = string.Empty;
}

public sealed class CreateAccountHandler : IHandler<CreateAccountRequest, string>
{
    public Task<string> HandleAsync(CreateAccountRequest request, CancellationToken cancellationToken = default)
        => Task.FromResult($"{request.Username} created");
}
  1. Registre o mediator e os handlers:
using Jaber.Mediator.Extensions;
using Jaber.Microsoft.Extensions.DependencyInjection;

var services = new ServiceCollection();
services.AddMediator(typeof(Program).Assembly);
  1. Envie o request:
using Jaber.Mediator.Abstractions;

var provider = services.BuildServiceProvider();
var mediator = provider.GetRequiredService<IMediator>();

var result = await mediator.SendAsync(new CreateAccountRequest { Username = "batman" });
Console.WriteLine(result);

Registro via DI

AddMediator faz:

  • Registra IMediator como Transient.
  • Escaneia as assemblies informadas e registra todo IHandler<,>.

Se seus handlers estao em outros projetos, passe todas as assemblies necessarias:

services.AddMediator(
    typeof(Program).Assembly,
    typeof(SomeOtherHandler).Assembly
);

Exemplo com Minimal API

using Jaber.Mediator.Abstractions;
using MyMediator.Application;
using MyMediator.Application.Accounts.UseCases.Create;

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddApplication();

var app = builder.Build();

app.MapPost("/v1/accounts", async (IMediator mediator, Request command) =>
{
    var result = await mediator.SendAsync(command);
    return result;
});

app.Run();

Observacoes

  • Target framework: net10.0.
  • Se nenhum handler for registrado para um request, o mediator lanca InvalidOperationException.

Projetos de exemplo

  • Mediator.Samples
  • MyMediator.Api
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.0.4 133 1/28/2026
0.0.3 113 1/28/2026
0.0.2 115 1/28/2026
0.0.1 118 1/28/2026