IRONSOFTWAREHOME
ACTUALIZACIONES PARA DESARROLLADORES

Mediatr C# (Cómo Funciona para Desarrolladores)

Jacob Mellor, Director de Tecnología @ Team Iron
Jacob Mellor
Updated: 19 de julio de 2026

MediatR es una popular biblioteca .NET que implementa el patrón mediador, permitiendo que los objetos se comuniquen entre sí a través de un mediador, en lugar de directamente. Este enfoque es particularmente útil en aplicaciones donde es deseable mantener un bajo nivel de acoplamiento entre los componentes. En este artículo, realizaremos un examen detallado de MediatR en el contexto del desarrollo en C#, proporcionando ejemplos prácticos y guías sobre cómo integrarlo en tus proyectos de aplicaciones web. También exploraremos la biblioteca IronPDF para funcionalidades PDF en aplicaciones .NET para la integración de funcionalidades PDF en proyectos ASP.NET Core.

Introducción al patrón mediador y MediatR

Mediatr C# (Cómo Funciona Para Desarrolladores): Figura 1 - MediatR y el Patrón Mediator

El patrón mediador es un patrón de diseño de software que facilita la interacción entre objetos de una manera que reduce las dependencias directas entre ellos, promoviendo un acoplamiento débil. MediatR proporciona una implementación de mediador sin pretensiones, centrándose en la simplicidad y la eficiencia en facilitar la comunicación entre objetos.

En el corazón de la biblioteca MediatR está el concepto de solicitudes y múltiples manejadores. En el punto de solicitud, un objeto encapsula los detalles de la operación o acción, esperando ser procesado por el mecanismo de MediatR. Cada solicitud es manejada por un manejador o método de manejo correspondiente, que contiene la lógica de negocio para ejecutar la solicitud. Esta estructura es particularmente útil para implementar el patrón de Separación de Responsabilidades de Consultas y Comandos (CQRS), donde la separación de operaciones de lectura y escritura puede llevar a arquitecturas de software más mantenibles y escalables.

Instalación de MediatR en un proyecto .NET Core mediante la consola del gestor de paquetes

Para comenzar a usar MediatR en un proyecto ASP.NET Core, primero necesitas instalar el paquete MediatR. Esto se puede hacer a través de la Consola del Administrador de Paquetes en Visual Studio con el siguiente comando:

PM > Install-Package MediatR

Mediatr C# (Cómo Funciona Para Desarrolladores): Figura 2 - Instalar MediatR

Después de instalar el paquete, es necesario agregar MediatR al contenedor de inyección de dependencia de ASP.NET Core. Esto se hace típicamente en el archivo Program.cs o Startup.cs de tu proyecto de aplicación web, dependiendo de la versión de ASP.NET Core que estés utilizando. Aquí te mostramos cómo hacerlo en un programa con una capa de presentación 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();

En la clase del programa, var builder = WebApplication.CreateBuilder(args); inicializa la aplicación web, preparando el escenario para la integración de MediatR.

Crear su primera solicitud y gestor de MediatR

Las solicitudes de MediatR son clases simples que representan los datos necesarios para realizar una operación específica. Aquí tienes un ejemplo de una clase de solicitud que representa un comando para crear un nuevo usuario.

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

En este ejemplo, la clase CreateUserCommand implementa la interfaz IRequest<int>, indicando que esta solicitud espera una respuesta entera, que podría representar la ID del usuario creado.

A continuación, necesitas crear un controlador para esta solicitud. Dentro de cada controlador, el método Handle es donde se ejecuta la lógica de la solicitud:

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
    }
}

Utilización de MediatR en su aplicación

Siguiendo el mismo proceso utilizado para configurar MediatR, lo integras dentro del flujo de trabajo de tu aplicación. Esto se hace típicamente a través de un controlador o punto final en una aplicación ASP.NET Core. Aquí tienes un ejemplo usando un 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);
    }
}

En este controlador, el método de acción Create envía el CreateUserCommand a MediatR llamando a _mediator.Send(command). MediatR encuentra entonces el manejador apropiado para este comando y lo ejecuta. El resultado se devuelve y se utiliza para generar una respuesta en el mismo proceso.

Más allá de las peticiones básicas: Notificaciones y comportamientos

MediatR también soporta notificaciones y comportamientos. Las notificaciones son mensajes a los que múltiples manejadores pueden suscribirse y manejar, permitiendo un enfoque más orientado a eventos dentro de tu aplicación. Los comportamientos, por otro lado, son similares a middleware para tus solicitudes MediatR, permitiéndote implementar preocupaciones transversales como registro, validación o gestión de transacciones.

Introducción a la biblioteca IronPDF

Mediatr C# (Cómo Funciona Para Desarrolladores): Figura 3 - IronPDF

IronPDF es una biblioteca C# diseñada para desarrolladores .NET que necesitan una forma sencilla de crear, editar y trabajar con archivos PDF en sus aplicaciones sin preocupaciones de escritura. Los desarrolladores pueden generar PDFs sin participar con APIs complejas simplemente convirtiendo páginas web o código HTML directamente en formato PDF. IronPDF no se limita solo a crear PDFs; también ofrece características para editar PDFs, como añadir texto, imágenes y páginas, o incluso completar y editar formularios dentro de documentos PDF. Los desarrolladores pueden trabajar de manera exhaustiva con PDFs, incluyendo tareas como fusionar, dividir y asegurar archivos PDF con contraseñas y permisos.

IronPDF se especializa en la conversión de HTML a PDF preservando los diseños y estilos originales con precisión. Esto lo hace ideal para generar PDFs desde contenido basado en la web como informes, facturas y documentación. Admite la conversión de archivos HTML, URLs e incluso cadenas HTML en bruto a archivos 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");
    }
}

Ejemplo de código

En este ejemplo, asumamos que una solicitud MediatR se refiere a algún tipo de contenido multimedia o metadatos que queremos incluir en nuestro PDF. Dado que MediatR no está directamente relacionado con la funcionalidad de IronPDF, lo abordaremos creando un documento PDF a partir de contenido HTML que incluya información o referencias de medios como un excelente punto 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.");
    }
}

En este fragmento de código, htmlContent es una variable que debe contener tu información de medios en formato HTML. Esto podría incluir texto, imágenes, enlaces a videos o cualquier otro contenido compatible con HTML. IronPDF convertirá este contenido HTML en un documento PDF, preservando el diseño y formato especificado en el HTML.

Mediatr C# (Cómo Funciona Para Desarrolladores): Figura 4 - Salida PDF

Conclusión

Siguiendo los pasos descritos en este artículo, ahora deberías tener una base sólida para incorporar MediatR en tus proyectos, comenzando desde el manejo básico de comandos y consultas hasta el aprovechamiento de características avanzadas como notificaciones y comportamientos. A medida que tu aplicación crece y evoluciona, MediatR ofrece herramientas y patrones que pueden ayudar a mantener tu base de código limpia, mantenible y escalable.

Al concluir, vale la pena mencionar que explorar e integrar diferentes bibliotecas y herramientas, como IronPDF, puede mejorar aún más tus proyectos .NET. IronPDF ofrece una prueba gratuita de características avanzadas de PDF. Para proyectos que requieren características avanzadas de PDF, el licenciamiento de IronPDF comienza desde $999, ofreciendo una solución robusta para los desarrolladores .NET que buscan ampliar las funcionalidades de su aplicación.

Jacob Mellor, Director de Tecnología @ Team Iron
Director de Tecnología

Jacob Mellor es Director de Tecnología de Iron Software y un ingeniero visionario pionero en la tecnología C# PDF. Como desarrollador original de la base de código principal de Iron Software, ha dado forma a la arquitectura de productos de la empresa desde su creación, transformándola, junto con el director ejecutivo Cameron Rimington, en una empresa de más de 50 personas que presta servicios a la NASA, Tesla y organismos gubernamentales de todo el mundo.

...
Leer más

Artículos Relacionados

Key in blue circle

Obtenga su clave de prueba gratuita de 30 días al instante.

Your trial license will be sent to your email address

Sin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.

bullet_checkedNo se requiere tarjeta de crédito ni creación de cuentaSin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Reserve su Demostración en Vivo gratuita
Booking Badge

Confiado por millones de ingenieros en todo el mundo

Logos de clientes de Iron Software
Obtén tu Consulta Sin Compromiso
Completa el formulario a continuación o envía un correo a sales@ironsoftware.com
Tus detalles siempre serán mantenidos confidenciales.
Confiado por millones de ingenieros en todo el mundo
Logos de clientes de Iron Software
Obtenga su Clave de Prueba de 30 días gratis al instante.
No se requiere tarjeta de crédito ni creación de cuenta