IRONSOFTWAREHOME
开发者更新

Mediatr C#(开发人员如何使用)

Jacob Mellor,Team Iron 的首席技术官
Jacob Mellor
Updated: 2026年7月19日

MediatR 是一个流行的 .NET 库,实现了中介者模式,使对象通过中介者而不是直接相互通信。 这种方法在希望在组件之间保持低耦合的应用程序中特别有用。 在本文中,我们将详细了解 C# 开发中的 MediatR,提供如何将其集成到您的 Web 应用程序项目中的实际示例和指导。 我们还将探索IronPDF 用于 .NET 应用程序中的 PDF 功能的库,以便在 ASP.NET Core 项目中集成 PDF 功能。

中介者模式和 MediatR 简介

Mediatr C#(开发者如何使用):图1 - MediatR和中介者模式

中介者模式是一种软件设计模式,以降低对象之间的直接依赖关系的方式促进对象之间的交互,促进松耦合。 MediatR 提供了一个不复杂的中介者实现,专注于促进对象通信的简单性和效率。

MediatR 库的核心概念是请求和多个处理程序。 在请求点上,对象封装操作或动作详情,等待 MediatR 机制的处理。 每个请求由相应的处理程序或处理方法处理,该方法包含执行请求的业务逻辑。这种结构对于实现命令查询职责分离 (CQRS) 模式特别有用,因为读写操作的分离可以导致更易维护和扩展的软件架构。

使用包管理器控制台在 .NET Core 项目中安装 MediatR

要在 ASP.NET Core 项目中开始使用 MediatR,您首先需要安装 MediatR 包。 这可以通过 Visual Studio 的包管理器控制台使用以下命令完成:

PM > Install-Package MediatR

Mediatr C#(开发者如何使用):图2 - 安装MediatR

安装包后,需要将 MediatR 添加到 ASP.NET Core 依赖注入容器中。 这通常在您的 Web 应用程序项目的 Program.cs 或 Startup.cs 文件中完成,具体取决于您使用的 ASP.NET Core 版本。 以下是在具有最小 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();

在程序类中,var builder = WebApplication.CreateBuilder(args);初始化web应用程序,为MediatR集成做好准备。

创建您的第一个 MediatR 请求和处理程序

MediatR 请求是表示执行特定操作所需数据的简单类。 以下是一个表示创建新用户的命令的请求类示例。

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

在此示例中,CreateUserCommand 类实现 IRequest<int> 接口,指示该请求期望整数响应,这可能代表创建用户的 ID。

接下来,您需要为此请求创建一个处理程序。在每个处理程序中,Handle方法是执行请求逻辑的地方:

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

在您的应用程序中使用 MediatR

通过遵循设置 MediatR 使用的相同过程,您可以将其集成到您的应用程序工作流程中。 这通常通过 ASP.NET Core 应用程序中的控制器或端点完成。 以下是使用 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);
    }
}

在此控制器中,_mediator.Send(command)将CreateUserCommand发送给MediatR。 然后 MediatR 找到适合此命令的处理程序并执行它。 结果返回并在同一过程中用于生成响应。

超越基本请求:通知和行为

MediatR 还支持通知和行为。 通知是多个处理程序可以订阅和处理的消息,允许应用程序中采用更多事件驱动的方法。 另一方面,行为类似于 MediatR 请求的中间件,允许您实现跨领域关注点,如日志记录、验证或事务管理。

IronPDF库简介

Mediatr C#(开发者如何使用):图3 - IronPDF

IronPDF 是为 .NET 开发人员设计的 C# 库,他们需要一种简单的方法来在其应用程序中创建、编辑和处理 PDF 文件,而无需担心写入问题。 开发人员可以简单地将网页或HTML 代码直接转换为 PDF 格式,而无需使用复杂的 API。 IronPDF 不仅限于创建 PDF; 它还提供用于编辑 PDF 的功能,例如添加文本、图像和页面,甚至在 PDF 文档中填写和编辑表单。 开发人员可以全面处理 PDF,包括合并、拆分和使用密码和权限保护 PDF 文件等任务。

IronPDF 专注于将HTML 转换为 PDF,精确保留原始布局和样式。 这使其非常适合从基于 Web 的内容(如报告、发票和文档)生成 PDF。 它支持将 HTML 文件、URL 和甚至原始 HTML 字符串转换为 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");
    }
}

代码示例

在此示例中,我们假设 MediatR 请求指的是某种形式的媒体内容或元数据,我们希望将其包含在我们的 PDF 中。 由于 MediatR 不直接与 IronPDF 的功能相关联,我们将通过从包含媒体信息或引用的 HTML 内容创建 PDF 文档来开始使用。

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

在此代码片段中,htmlContent 是一个变量,应包含您的媒体信息以 HTML 格式。 这可以包括文本、图像、视频链接或任何其他 HTML 兼容内容。 IronPDF 将此 HTML 内容转换为 PDF 文档,保留 HTML 中指定的布局和格式。

Mediatr C#(开发者如何使用):图4 - PDF输出

结论

通过按照本文中概述的步骤,您现在应该为将 MediatR 合并到您的项目中奠定了坚实的基础,从基本的命令和查询处理开始,一直到利用更高级的功能如通知和行为。 随着应用程序的增长和发展,MediatR 提供了可以帮助保持代码库清晰、可维护和可扩展的工具和模式。

结束时,值得注意的是,探索和集成不同的库和工具,如 IronPDF,可能会进一步增强您的 .NET 项目。 IronPDF 提供高级 PDF 功能的免费试用。 对于需要高级PDF功能的项目,IronPDF的许可从$999开始,为希望扩展应用程序功能的.NET开发者提供了一个强大的解决方案。

Jacob Mellor,Team Iron 的首席技术官
首席技术官

Jacob Mellor 是 Iron Software 的首席技术官,也是一位开创 C# PDF 技术的有远见的工程师。作为 Iron Software 核心代码库的原始开发者,他从公司成立之初就开始塑造公司的产品架构,与首席执行官 Cameron Rimington 一起将公司转变为一家拥有 50 多名员工的公司,为 NASA、特斯拉和全球政府机构提供服务。

相关文章

Key in blue circle

立即获取免费的 30 天试用版密钥。

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

OR
bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥。
无需信用卡或创建账户
C# 用于 PDF 的 NuGet 库
通过 NuGet 安装

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解决方案资源管理器中,右键点击引用,管理 NuGet 包
  2. 选择浏览并搜索 “IronPDF”
  3. 选择包并安装
C# PDF DLL
下载 DLL

版本: 2026.9

或在此处下载 Windows 安装程序。

  1. 下载并解压 IronPDF 到您的解决方案目录中的 ~/Libs 之类的位置
  2. 在 Visual Studio 解决方案资源管理器中,右键点击引用。选择浏览,“IronPDF.dll”

$999 起