Tooark.Mediator.Abstractions 3.3.0

dotnet add package Tooark.Mediator.Abstractions --version 3.3.0
                    
NuGet\Install-Package Tooark.Mediator.Abstractions -Version 3.3.0
                    
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="Tooark.Mediator.Abstractions" Version="3.3.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Tooark.Mediator.Abstractions" Version="3.3.0" />
                    
Directory.Packages.props
<PackageReference Include="Tooark.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 Tooark.Mediator.Abstractions --version 3.3.0
                    
#r "nuget: Tooark.Mediator.Abstractions, 3.3.0"
                    
#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 Tooark.Mediator.Abstractions@3.3.0
                    
#: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=Tooark.Mediator.Abstractions&version=3.3.0
                    
Install as a Cake Addin
#tool nuget:?package=Tooark.Mediator.Abstractions&version=3.3.0
                    
Install as a Cake Tool

Tooark.Mediator.Abstractions

Biblioteca com os contratos base do padrão Mediator para projetos .NET, utilizada por implementações como Tooark.Mediator.

Conteúdo

Visão Geral

O pacote Tooark.Mediator.Abstractions define os contratos para:

  • requests (IRequest, IRequest<TResponse>);
  • commands (ICommand, ICommand<TResponse>);
  • queries (IQuery<TResponse>);
  • notifications (INotify);
  • envio e publicação (ISender, IPublisher);
  • interface principal (IMediator);
  • retorno vazio (Unit).

🔧 Instalação

dotnet add package Tooark.Mediator.Abstractions

📦 Componentes

Contratos de mensagem

  • IRequest<TResponse>: contrato base de requisição com resposta.
  • IRequest: atalho para requisição sem payload de resposta (Unit).
  • ICommand<TResponse>: comando com resposta.
  • ICommand: comando sem resposta explícita (Unit).
  • IQuery<TResponse>: consulta com resposta.
  • INotify: notificação/evento sem resposta.

Contratos de orquestração

  • ISender
    • Task<TResponse> SendAsync<TResponse>(IRequest<TResponse> request, CancellationToken cancellationToken = default)
  • IPublisher
    • Task PublishAsync(INotify notification, CancellationToken cancellationToken = default)
  • IMediator: combina ISender e IPublisher.

Tipo utilitário

  • Unit
    • Unit.Value
    • Unit.Task

📝 Exemplos de Uso

Definindo mensagens

using Tooark.Mediator.Abstractions;

public sealed record CreateOrderCommand(string CustomerName) : ICommand<Guid>;

public sealed record GetOrderByIdQuery(Guid Id) : IQuery<string>;

public sealed record OrderCreatedNotify(Guid OrderId) : INotify;

Dependendo dos contratos no serviço

using Tooark.Mediator.Abstractions;

public sealed class OrderApplicationService(ISender sender, IPublisher publisher)
{
  public async Task<Guid> CreateAsync(string customerName, CancellationToken cancellationToken)
  {
    var id = await sender.SendAsync(new CreateOrderCommand(customerName), cancellationToken);

    await publisher.PublishAsync(new OrderCreatedNotify(id), cancellationToken);

    return id;
  }

  public Task<string> GetByIdAsync(Guid id, CancellationToken cancellationToken)
  {
    return sender.SendAsync(new GetOrderByIdQuery(id), cancellationToken);
  }
}

Usando Unit em comandos sem retorno

using Tooark.Mediator.Abstractions;

public sealed record DeactivateOrderCommand(Guid Id) : ICommand;

public static Task<Unit> SuccessAsync()
{
  return Unit.Task;
}

📋 Dependências

Pacote Versão Descrição
Tooark.Exceptions Exceções (ex.: BadRequestException)

🪪 Contribuição

Contribuições são bem-vindas! Sinta-se à vontade para abrir issues e pull requests no repositório Tooark.Mediator.Abstractions.

📄 Licença

Este projeto está licenciado sob a licença BSD 3-Clause. Veja o arquivo LICENSE para mais detalhes.

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.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on Tooark.Mediator.Abstractions:

Package Downloads
Tooark

Package with all Tooark resources for .NET applications.

Tooark.Mediator

Biblioteca para desacoplamento entre requests e handlers com padrão Mediator em aplicações .NET.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
3.3.0 132 4/17/2026