透かしなしで本番環境でテストしてください。
必要な場所で動作します。
30日間、完全に機能する製品をご利用いただけます。
数分で稼働させることができます。
製品トライアル期間中にサポートエンジニアリングチームへの完全アクセス
MediatRは、人気のある.NETライブラリであり、メディエーター・パターンを実装し、オブジェクトが直接ではなくメディエーターを介して互いに通信できるようにします。 このアプローチは、コンポーネント間の結合度を低く保つことが望ましいアプリケーションに特に有用です。 この記事では、C#開発の文脈でMediatRを詳細に見ていき、ウェブアプリケーションプロジェクトにそれを統合するための実践的な例とガイダンスを提供します。 また、次のことを探求します.NETアプリケーションのPDF機能のためのIronPDFライブラリASP.NET CoreプロジェクトにおけるPDF機能の統合のために。
メディエーター・パターンは、オブジェクト間の相互作用を促進するソフトウェア設計パターンであり、オブジェクト間の直接的な依存関係を減少させ、疎結合を促進します。 MediatRは、シンプルで効率的なオブジェクト通信を促進することに重点を置いた、控えめなメディエーターの実装を提供します。
MediatRライブラリの中心には、リクエストと複数のハンドラーの概念があります。 リクエストポイントでは、オブジェクトが操作またはアクションの詳細をカプセル化し、MediatRメカニズムによって処理されるのを待ちます。 各リクエストは、リクエストを実行するビジネスロジックを含む対応するハンドラまたはハンドルメソッドによって処理されます。この構造は、コマンドとクエリの責任分離(Command Query Responsibility Segregation)を実装するために特に有用です。(CQRS)読み取り操作と書き込み操作を分離することで、より保守しやすくスケーラブルなソフトウェアアーキテクチャを実現できるパターン。
ASP.NET CoreプロジェクトでMediatRを使用し始めるには、最初にMediatRパッケージをインストールする必要があります。 これは、Visual Studio のパッケージ マネージャー コンソールで次のコマンドを使用して実行できます:
Install-Package MediatR
パッケージをインストールした後、ASP.NET Coreの依存関係注入コンテナにMediatRを追加する必要があります。 これは通常、使用しているASP.NET Coreのバージョンに応じて、WebアプリケーションプロジェクトのProgram.csまたはStartup.csファイルで行われます。 以下のように、APIプレゼンテーションレイヤーを最小限に抑えたプログラムで実行することができます。
// writing code
var builder = WebApplication.CreateBuilder(args);
// Add MediatR
builder.Services.AddMediatR(typeof(Program).Assembly);
var app = builder.Build();
// writing code
var builder = WebApplication.CreateBuilder(args);
// Add MediatR
builder.Services.AddMediatR(typeof(Program).Assembly);
var app = builder.Build();
プログラムクラスで、**var builder = WebApplication.CreateBuilder(引数)ウェブアプリケーションを初期化し、MediatR統合の準備を行います。
MediatRリクエストは、パブリッククラスのメールハンドラのような単純なクラスで、特定の操作を実行するために必要なデータを表します。 こちらは、新しいユーザーを作成するコマンドを表すリクエストパブリッククラスの例です。
public class CreateUserCommand : IRequest<int>
{
public string Name { get; set; }
public string Email { get; set; }
public int id {get; set;}
}
public class CreateUserCommand : IRequest<int>
{
public string Name { get; set; }
public string Email { get; set; }
public int id {get; set;}
}
この例では、CreateUserCommand クラスが IRequest を実装します。
次に、このリクエストのためのハンドラーを作成する必要があります。各ハンドラー内で、public async Task Handle メソッドがリクエストのロジックが実行される中心的な部分です。
public class CreateUserHandler : IRequestHandler<CreateUserCommand, int>
{
public async Task<int> Handle(CreateUserCommand command, CancellationToken token)
{
// Implement logic to create 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
}
}
public class CreateUserHandler : IRequestHandler<CreateUserCommand, int>
{
public async Task<int> Handle(CreateUserCommand command, CancellationToken token)
{
// Implement logic to create 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の設定を行うことで、アプリケーションのワークフローにそれを統合します。 これは通常、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);
}
}
[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);
}
}
このコントローラーでは、Create アクションメソッドが _mediator.Send を呼び出して、CreateUserCommand を MediatR に送信します。(コマンド)**. MediatRはこのコマンドに対して適切なハンドラを見つけ、実行します。 結果が返され、同じプロセスでレスポンスを生成するために使用されます。
MediatRは通知とビヘイビアもサポートしています。 通知は、複数のハンドラーが購読および処理できるメッセージであり、アプリケーション内でよりイベント駆動型のアプローチを可能にします。 一方、ビヘイビアは、MediatRリクエストに対するミドルウェアに似ており、ログ記録、バリデーション、トランザクション管理などの横断的な関心事を実装することができます。
IronPDFは、アプリケーション内でPDFファイルを作成、編集、操作するための簡単な方法を必要とする.NET開発者向けに設計されたC#ライブラリです。 開発者は、複雑なAPIに関わることなく、ウェブページやHTMLコードを直接PDF形式に変換. IronPDFはPDFの作成だけに限りません。 また、PDF内でテキスト、画像、ページを追加したり、フォームに入力および編集するなどのPDF編集機能も提供しています。 開発者は、PDFの結合、分割、パスワードや権限によるセキュリティ対策などを含めたPDFの総合的な操作を行うことができます。
HTML to PDF with ease.HTMLからPDF元のレイアウトやスタイルを正確に保持します。 これにより、レポート、請求書、文書などのウェブベースのコンテンツから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");
}
}
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)
{
License.LicenseKey = "License-Key";
// Initialize the HtmlToPdf renderer
var renderer = new ChromePdfRenderer();
// Example HTML content - replace this with your actual HTML content
// Here, "htmlContent" should include your MediatR information in HTML format
string htmlTemplate = $@"
<html>
<head>
<title>Media Information</title>
</head>
<body>
<h1>Media Details</h1>
<!-- Insert your media information here -->
{htmlContent}
</body>
</html>";
// Convert HTML string to PDF
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.");
}
}
using IronPdf;
public class PdfGenerator
{
public void CreatePdfWithMediaInfo(string htmlContent)
{
License.LicenseKey = "License-Key";
// Initialize the HtmlToPdf renderer
var renderer = new ChromePdfRenderer();
// Example HTML content - replace this with your actual HTML content
// Here, "htmlContent" should include your MediatR information in HTML format
string htmlTemplate = $@"
<html>
<head>
<title>Media Information</title>
</head>
<body>
<h1>Media Details</h1>
<!-- Insert your media information here -->
{htmlContent}
</body>
</html>";
// Convert HTML string to PDF
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をプロジェクトに組み込むための確固たる基盤を得ることができるはずです。 アプリケーションが成長し進化する中で、MediatRは、コードベースをクリーンで、メンテナブルで、スケーラブルに保つためのツールとパターンを提供します。
結論として、IronPDFなどのさまざまなライブラリやツールを探索して統合することで、.NETプロジェクトをさらに強化することができる点を指摘する価値があります。 IronPDFは高度なPDF機能の無料トライアル. 高度なPDF機能を必要とするプロジェクトに対して、IronPDFのライセンスは$749から開始され、アプリケーションの機能を拡張したいと考えている.NET開発者にとって堅牢なソリューションを提供します。