IRONSOFTWAREHOME
AKTUALNOŚCI DLA PROGRAMISTÓW

Mediatr C# (jak to działa dla programistów)

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Jacob Mellor
Updated: 19 lipca 2026

MediatR jest popularną biblioteką .NET, która implementuje wzorzec mediatora, umożliwiając obiektom komunikację za pośrednictwem mediatora zamiast bezpośrednio między sobą. To podejście jest szczególnie przydatne w aplikacjach, w których pożądane jest utrzymanie niskiego poziomu sprzężenia między komponentami. W tym artykułe dokładnie przyjrzymy się MediatR w kontekście rozwijania C#, dostarczając praktyczne przykłady i wskazówki, jak zintegrować go z projektami aplikacji webowych. Zbadamy również bibliotekę IronPDF dla funkcjonalności PDF w aplikacjach .NET do integracji funkcji PDF w projektach ASP.NET Core.

Wprowadzenie do wzorca Mediator i MediatR

Mediatr C# (Jak to działa dla programistów): Rysunek 1 - MediatR i wzorzec mediatora

Wzorzec mediatora to wzorzec projektowy, który ułatwia interakcję między obiektami w sposób redukujący bezpośrednie zależności między nimi, promując luźne sprzężenie. MediatR zapewnia skromną implementację mediatora, skupiając się na prostocie i efektywności w ułatwianiu komunikacji między obiektami.

Sercem biblioteki MediatR jest koncepcja żądań i wielu obsługujących. W punkcie żądania obiekt kapsułkuje szczegóły operacji lub działania, czekając na przetworzenie przez mechanizm MediatR. Każde żądanie jest obsługiwane przez odpowiadający mu obsługujący lub metodę obsługi, która zawiera logikę biznesową do wykonania żądania. Ta struktura jest szczególnie przydatna do implementacji wzorca Command Query Responsibility Segregation (CQRS), gdzie rozdzielenie operacji odczytu i zapisu może prowadzić do bardziej łatwo utrzymywalnych i skalowalnych architektur oprogramowania.

Instalacja MediatR w projekcie .NET Core za pomocą konsoli Package Manager

Aby zacząć używać MediatR w projekcie ASP.NET Core, najpierw musisz zainstalować pakiet MediatR. Możesz to zrobić za pomocą konsoli Package Manager w Visual Studio, używając następującej komendy:

PM > Install-Package MediatR

Mediatr C# (Jak to działa dla programistów): Rysunek 2 - Instalacja MediatR

Po zainstalowaniu pakietu należy dodać MediatR do kontenera iniekcji zależności ASP.NET Core. Zazwyczaj jest to robione w pliku Program.cs lub Startup.cs twojego projektu aplikacji webowej w zależności od wersji ASP.NET Core, z której korzystasz. Oto jak to zrobić w programie z warstwą prezentacji minimalnego API.

// 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();

W klasie program var builder = WebApplication.CreateBuilder(args); inicjalizuje aplikację webową, tworząc podstawy dla integracji MediatR.

Tworzenie pierwszego żądania MediatR i obsługi

Żądania MediatR to proste klasy reprezentujące dane potrzebne do wykonania określonej operacji. Oto przykład klasy żądania, która reprezentuje polecenie utworzenia nowego użytkownika.

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

W tym przykładzie klasa CreateUserCommand implementuje interfejs IRequest<int>, co oznacza, że to żądanie oczekuje odpowiedzi w formie liczby całkowitej, która może reprezentować ID utworzonego użytkownika.

Następnie należy utworzyć obsługę dla tego żądania. W każdej obsłudze znajduje się metoda Handle, w której realizowana jest logika żądania:

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

Używanie MediatR w Twojej aplikacji

Postępując według tego samego procesu, który użyty został do skonfigurowania MediatR, integrujesz go z przepływem pracy twojej aplikacji. Zazwyczaj odbywa się to poprzez kontroler lub końcówkę w aplikacji ASP.NET Core. Oto przykład użycia kontrolera 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);
    }
}

W tym kontrolerze, metoda akcji Create wysyła CreateUserCommand do MediatR przez wywołanie _mediator.Send(command). MediatR następnie znajduje odpowiedniego obsługującego dla tego polecenia i wykonuje go. Wynik jest zwracany i używany do wygenerowania odpowiedzi w tym samym procesie.

Poza podstawowymi żądaniami: powiadomienia i zachowania

MediatR obsługuje także powiadomienia i zachowania. Powiadomienia to wiadomości, które mogą być subskrybowane i obsługiwane przez wielu obsługujących, umożliwiając bardziej zdarzeniowe podejście w aplikacji. Zachowania zaś są podobne do middleware dla żądań MediatR, umożliwiając implementację przekrojowych aspektów takich jak logowanie, walidacja czy zarządzanie transakcjami.

Wprowadzenie do biblioteki IronPDF

Mediatr C# (Jak to działa dla programistów): Rysunek 3 - IronPDF

IronPDF to biblioteka C# zaprojektowana dla deweloperów .NET, którzy potrzebują prostego sposobu na tworzenie, edytowanie i pracę z plikami PDF w ich aplikacjach bez obaw o zapisywanie. Deweloperzy mogą tworzyć PDF-y bez angażowania się w skomplikowane API, po prostu konwertując strony internetowe lub kod HTML bezpośrednio do formatu PDF. IronPDF nie jest ograniczone tylko do tworzenia PDF-ów; oferuje również funkcje edycji PDF-ów, takie jak dodawanie tekstu, obrazów i stron, czy nawet wypełnianie i edytowanie formularzy w dokumentach PDF. Deweloperzy mogą kompleksowo pracować z PDF-ami, włączając zadania takie jak łączenie, dzielenie i zabezpieczanie plików PDF hasłami i uprawnieniami.

IronPDF specjalizuje się w konwersji HTML do PDF, zachowując oryginalne układy i style z precyzją. Czyni to idealnym rozwiązaniem do generowania PDF-ów z treści opartych na sieci, takich jak raporty, faktury i dokumentacja. Obsługuje konwersję z plików HTML, adresów URL, a nawet z surowych łańcuchów HTML do plików 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");
    }
}

Przykład kodu

W tym przykładzie załóżmy, że żądanie MediatR odnosi się do jakiejś formy treści medialnej lub metadanych, które chcemy uwzględnić w naszym PDF. Ponieważ MediatR nie jest bezpośrednio związane z funkcjonalnością IronPDF, podejdziemy do tego, tworząc dokument PDF z treści HTML, który zawiera informacje lub odniesienia multimedialne jako świetny punkt wyjścia.

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.");
    }
}

W tym fragmencie kodu, zmienna htmlContent powinna zawierać informacje medialne w formacie HTML. Może to zawierać tekst, obrazy, linki do filmów lub dowolną inną treść kompatybilną z HTML. IronPDF przekonwertuje tę treść HTML na dokument PDF, zachowując układ i formatowanie określone w HTML.

Mediatr C# (Jak to działa dla programistów): Rysunek 4 - Wydruk PDF

Wnioski

Mediatr C# (Jak to działa dla programistów): Rysunek 5 - Licencjonowanie

Postępując zgodnie z krokami przedstawionymi w tym artykułe, powinieneś już mieć mocną podstawę do wdrożenia MediatR do swoich projektów, począwszy od podstawowego zarządzania poleceniami i zapytaniami po wykorzystywanie bardziej zaawansowanych funkcji, takich jak powiadomienia i zachowania. W miarę jak twoja aplikacja rośnie i rozwija się, MediatR oferuje narzędzia i wzorce, które mogą pomóc utrzymać czysty, łatwy w utrzymaniu i skalowalny kod.

Na zakończenie warto wspomnieć, że przeglądanie i integracja różnych bibliotek i narzędzi, takich jak IronPDF, mogą jeszcze bardziej wzmocnić twoje projekty .NET. IronPDF oferuje bezpłatną wersję próbną zaawansowanych funkcji PDF. Dla projektów wymagających zaawansowanych funkcji PDF, licencjonowanie IronPDF zaczyna się od $999, oferując solidne rozwiązanie dla programistów .NET, którzy chcą rozszerzyć funkcjonalności swoich aplikacji.

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Dyrektor ds. technologii

Jacob Mellor jest Chief Technology Officer w Iron Software i wizjonerskim inżynierem, pionierem technologii C# PDF. Jako pierwotny deweloper głównej bazy kodowej Iron Software, kształtuje architekturę produktów firmy od jej początku, przekształcając ją wspólnie z CEO Cameron Rimington w firmę liczącą ponad 50 osób, obsługującą NASA, Teslę i światowe agencje rządowe.

...
Czytaj więcej

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta