O MediatR é uma biblioteca que implementa o padrão Mediator, facilitando a comunicação entre diferentes partes de uma aplicação sem que elas precisem estar diretamente acopladas. Isso promove um design mais modular e flexível. Ele é amplamente utilizado em aplicações para gerenciar comandos e eventos de forma centralizada. Neste exemplo, veremos como utilizar o MediatR para enviar um comando e processar sua resposta em um manipulador.
Bibliotecas:
Para usar a biblioteca MediatR e o Microsoft.Extensions.DependencyInjection, instale os seguintes pacotes NuGet no seu projeto:
Install-Package MediatR.Extensions.Microsoft.DependencyInjection
Install-Package Microsoft.Extensions.DependencyInjection
Código de Exemplo:
using MediatR;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Threading;
using System.Threading.Tasks;
// Definindo o comando
public class SaudarCommand : IRequest<string>
{
public string Nome { get; set; }
}
// Definindo o manipulador para o comando
public class SaudarCommandHandler : IRequestHandler<SaudarCommand, string>
{
public Task<string> Handle(SaudarCommand request, CancellationToken cancellationToken)
{
return Task.FromResult($"Olá, {request.Nome}!");
}
}
class Program
{
static async Task Main(string[] args)
{
// Configurando o MediatR com injeção de dependência
var services = new ServiceCollection();
services.AddMediatR(typeof(Program));
services.AddSingleton<SaudarCommandHandler>(); // Registrando o handler
var provider = services.BuildServiceProvider();
var mediator = provider.GetRequiredService<IMediator>();
// Enviando o comando e recebendo a resposta
var resultado = await mediator.Send(new SaudarCommand { Nome = "Desenvolvedor" });
Console.WriteLine(resultado);
}
}
Explicação do Código:
Neste exemplo, criamos um comando chamado SaudarCommand que contém um campo Nome. O manipulador SaudarCommandHandler recebe esse comando e retorna uma saudação personalizada. No método Main, configuramos o MediatR usando injeção de dependência e registramos o manipulador. Criamos o comando com o nome “Desenvolvedor” e o enviamos através do MediatR. O manipulador processa o comando e retorna a saudação, que é exibida no console.
Conclusão:
O MediatR é uma ferramenta poderosa para implementar o padrão Mediator, desacoplando a lógica de negócios da comunicação entre componentes. Ele permite organizar melhor a aplicação, facilitando a manutenção e o teste.
Código fonte: GitHub
Top comments (0)