IRONSOFTWAREHOME
ATUALIZAÇÕES DO DESENVOLVEDOR

Mediatr C# (Como funciona para desenvolvedores)

Curtis Chau
Curtis Chau
Updated: 19 de julho de 2026

MediatR é uma biblioteca .NET popular que implementa o padrão Mediator, permitindo que objetos se comuniquem entre si por meio de um mediador, em vez de diretamente. Essa abordagem é particularmente útil em aplicações onde se deseja manter um baixo nível de acoplamento entre os componentes. Neste artigo, analisaremos detalhadamente o MediatR no contexto do desenvolvimento em C#, fornecendo exemplos práticos e orientações sobre como integrá-lo aos seus projetos de aplicativos web. Também exploraremos a biblioteca IronPDF para funcionalidades de PDF em aplicações .NET , visando a integração de funcionalidades de PDF em projetos ASP.NET Core .

Introdução ao padrão Mediator e MediatR

Mediatr C# (Como Funciona Para Desenvolvedores): Figura 1 - MediatR e Padrão Mediator

O padrão Mediator é um padrão de projeto de software que facilita a interação entre objetos de uma maneira que reduz as dependências diretas entre eles, promovendo o baixo acoplamento. O MediatR oferece uma implementação de mediador descomplicada, focada na simplicidade e eficiência para facilitar a comunicação entre objetos.

No cerne da biblioteca MediatR está o conceito de requisições e múltiplos manipuladores. No ponto de solicitação, um objeto encapsula os detalhes da operação ou ação, aguardando processamento pelo mecanismo MediatR. Cada requisição é tratada por um manipulador ou método de tratamento correspondente, que contém a lógica de negócios para executar a requisição. Essa estrutura é particularmente útil para implementar o padrão CQRS (Command Query Responsibility Segregation), onde a separação das operações de leitura e escrita pode levar a arquiteturas de software mais fáceis de manter e escaláveis.

Instalando o MediatR em um projeto .NET Core usando o Console do Gerenciador de Pacotes

Para começar a usar o MediatR em um projeto ASP.NET Core , primeiro você precisa instalar o pacote MediatR. Isso pode ser feito através do Console do Gerenciador de Pacotes no Visual Studio com o seguinte comando:

PM > Install-Package MediatR

Mediatr C# (Como Funciona Para Desenvolvedores): Figura 2 - Instalar o MediatR

Após instalar o pacote, é necessário adicionar o MediatR ao contêiner de injeção de dependência do ASP.NET Core . Normalmente, isso é feito no arquivo Program.cs ou Startup.cs do seu projeto de aplicação web, dependendo da versão do ASP.NET Core que você está usando. Eis como você pode fazer isso em um programa com uma camada de apresentação de API mínima.

// Initialize a new web application
var builder = WebApplication.CreateBuilder(args);

// Add MediatR to the service container
builder.Services.AddMediatR(typeof(Program).Assembly);

// Build the web application
var app = builder.Build();

Na classe do programa, var builder = WebApplication.CreateBuilder(args); inicializa o aplicativo web, preparando o cenário para a integração do MediatR.

Criando sua primeira solicitação e manipulador do MediatR

As requisições do MediatR são classes simples que representam os dados necessários para realizar uma operação específica. Aqui está um exemplo de uma classe de requisição que representa um comando para criar um novo usuário.

public class CreateUserCommand : IRequest<int>
{
    public string Name { get; set; }
    public string Email { get; set; }
    public int Id { get; set; }
}

Neste exemplo, a classe CreateUserCommand implementa a interface IRequest.<int> interface, indicando que esta solicitação espera uma resposta do tipo inteiro, que pode representar o ID do usuário criado.

Em seguida, você precisa criar um manipulador para esta solicitação. Dentro de cada manipulador, o método Handle é onde a lógica da solicitação é executada:

public class CreateUserHandler : IRequestHandler<CreateUserCommand, int>
{
    public async Task<int> Handle(CreateUserCommand command, CancellationToken token)
    {
        // Implement logic to create a user here
        // For this example, let's pretend we create a user and return the ID
        return await Task.FromResult(1); // Assume the user's ID is 1
    }
}

Utilizando o MediatR em sua aplicação

Seguindo o mesmo processo usado na configuração do MediatR, você o integra ao fluxo de trabalho do seu aplicativo. Isso geralmente é feito por meio de um controlador ou endpoint em uma aplicação ASP.NET Core . Aqui está um exemplo usando um controlador de API:

[ApiController]
[Route("[controller]")]
public class UsersController : ControllerBase
{
    private readonly IMediator _mediator;

    public UsersController(IMediator mediator)
    {
        _mediator = mediator;
    }

    [HttpPost]
    public async Task<ActionResult<int>> Create(CreateUserCommand command)
    {
        var userId = await _mediator.Send(command);
        return CreatedAtRoute("GetUser", new { id = userId }, command);
    }
}

Neste controlador, o método de ação Create envia o CreateUserCommand para o MediatR chamando _mediator.Send(command). O MediatR então encontra o manipulador apropriado para esse comando e o executa. O resultado é retornado e usado para gerar uma resposta no mesmo processo.

Além das solicitações básicas: notificações e comportamentos

O MediatR também oferece suporte a notificações e comportamentos. As notificações são mensagens às quais vários manipuladores podem se inscrever e processar, permitindo uma abordagem mais orientada a eventos em sua aplicação. Os comportamentos, por outro lado, são semelhantes a um middleware para suas solicitações do MediatR, permitindo que você implemente preocupações transversais, como registro de logs, validação ou gerenciamento de transações.

Introdução à Biblioteca IronPDF

Mediatr C# (Como Funciona Para Desenvolvedores): Figura 3 - IronPDF

IronPDF é uma biblioteca C# projetada para desenvolvedores .NET que precisam de uma maneira simples de criar, editar e trabalhar com arquivos PDF em seus aplicativos, sem se preocupar com a gravação. Os desenvolvedores podem gerar PDFs sem recorrer a APIs complexas, simplesmente convertendo páginas da web ou código HTML diretamente para o formato PDF . O IronPDF não se limita apenas à criação de PDFs; Ele também oferece recursos para edição de PDFs, como adicionar texto, imagens e páginas, ou até mesmo preencher e editar formulários dentro de documentos PDF. Os desenvolvedores podem trabalhar de forma abrangente com PDFs, incluindo tarefas como mesclar, dividir e proteger arquivos PDF com senhas e permissões.

O IronPDF é especializado na conversão de HTML para PDF, preservando com precisão os layouts e estilos originais. Isso o torna ideal para gerar PDFs a partir de conteúdo da web, como relatórios, faturas e documentação. Ele suporta a conversão de arquivos HTML, URLs e até mesmo strings HTML brutas em arquivos PDF.

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}

Exemplo de código

Neste exemplo, vamos supor que a solicitação MediatR se refere a algum tipo de conteúdo de mídia ou metadados que desejamos incluir em nosso PDF. Como o MediatR não está diretamente relacionado à funcionalidade do IronPDF, vamos abordar isso criando um documento PDF a partir de conteúdo HTML que inclua informações de mídia ou referências, como um ótimo ponto de partida.

using IronPdf;

public class PdfGenerator
{
    public void CreatePdfWithMediaInfo(string htmlContent)
    {
        // Insert your License Key here if required
        License.LicenseKey = "License-Key";

        // Initialize the HtmlToPdf renderer
        var renderer = new ChromePdfRenderer();

        // Create an HTML template with media information
        string htmlTemplate = $@"
            <html>
            <head>
                <title>Media Information</title>
            </head>
            <body>
                <h1>Media Details</h1>
                <!-- Insert your media information here -->
                {htmlContent}
            </body>
            </html>";

        // Convert the HTML string to a PDF document
        var pdfDocument = renderer.RenderHtmlAsPdf(htmlTemplate);
        pdfDocument.SaveAs("MediaInformation.pdf");
    }
}

class Program
{
    static void Main(string[] args)
    {
        // Example HTML content with MediatR information
        string htmlContent = @"
            <div>
                <h2>MediatR Information</h2>
                <p>MediatR is a media tracking system...</p>
            </div>";

        // Create an instance of PdfGenerator
        PdfGenerator pdfGenerator = new PdfGenerator();

        // Call the CreatePdfWithMediaInfo method to generate the PDF
        pdfGenerator.CreatePdfWithMediaInfo(htmlContent);

        Console.WriteLine("PDF generated successfully.");
    }
}

Neste trecho de código, htmlContent é uma variável que deve conter as informações da sua mídia em formato HTML. Isso pode incluir texto, imagens, links para vídeos ou qualquer outro conteúdo compatível com HTML. O IronPDF converterá esse conteúdo HTML em um documento PDF, preservando o layout e a formatação especificados no HTML.

Mediatr C# (Como Funciona Para Desenvolvedores): Figura 4 - Saída de PDF

Conclusão

Seguindo os passos descritos neste artigo, você terá agora uma base sólida para incorporar o MediatR em seus projetos, desde o tratamento básico de comandos e consultas até o aproveitamento de recursos mais avançados, como notificações e comportamentos. À medida que sua aplicação cresce e evolui, o MediatR oferece ferramentas e padrões que podem ajudar a manter seu código limpo, de fácil manutenção e escalável.

Para concluir, vale ressaltar que explorar e integrar diferentes bibliotecas e ferramentas, como o IronPDF, pode aprimorar ainda mais seus projetos .NET . O IronPDF oferece um período de teste gratuito de recursos avançados de PDF . Para projetos que exigem recursos avançados de PDF, o licenciamento do IronPDF começa a partir de $999, oferecendo uma solução robusta para desenvolvedores .NET que desejam expandir as funcionalidades de suas aplicações.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.

...
Leia mais

Artigos relacionados

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.