透かしなしで本番環境でテストしてください。
必要な場所で動作します。
30日間、完全に機能する製品をご利用いただけます。
数分で稼働させることができます。
製品トライアル期間中にサポートエンジニアリングチームへの完全アクセス
Microsoft.Extensions.DependencyInjection は、Microsoft .NET が提供する強力なライブラリで、依存性注入 (DI) を容易にします。DI はソフトウェアデザインパターンで、疎結合を促進し、アプリケーションのテスト容易性を向上させます。 DIは、多くの場合、.NET Core に組み込まれたDIコンテナや、AutofacやUnityのようなライブラリを使用して実装されます。 DIは、クラスがその依存関係を作成するのではなく、クラスが必要とする依存関係(オブジェクト)をクラスに注入することを含みます。 これは通常、コンストラクタ、メソッド、プロパティ・インジェクションによって行われる。
サービス登録: 依存関係は、通常、アプリケーションのコンポジションルートでDIコンテナに登録されます。 これらの登録は、コンテナが依存関係をどのように作成し、管理すべきかを指定する。
スコープ付き: スコープ付きの依存関係は、リクエストまたはライフタイムスコープごとに一度だけ作成され、コンテナは単一のリクエストまたは操作内で同じインスタンスを提供します。 この一貫性はWebアプリケーションで特に有用で、スコープされた依存関係はWebリクエストを通して安定した依存関係を維持するのに役立ちます。
一時的: 一時的依存関係は、コンテナから要求されるたびにインスタンス化されます。 これは、一時的な依存関係の新しいインスタンスが、必要になるたびに生成されることを意味する。 通常、一時的な依存関係は、軽量でステートレスなサービスやコンポーネントに使用される。
.NET Core プロジェクトで依存性注入を使用し始めるには、まず Microsoft.Extensions.DependencyInjection パッケージ をインストールする必要があります。 これは、Visual StudioのNuGet Package Managerコンソールを使って、以下のコードで行うことができる:
Install-Package Microsoft.Extensions.DependencyInjection
Install-Package Microsoft.Extensions.DependencyInjection
IRON VB CONVERTER ERROR developers@ironsoftware.com
この例では、サービスプロバイダーを使用してサービスを解決し、それらをプログラムに注入するサンプルアプリ(コンソールアプリケーション)を作成しましょう。
using Microsoft.Extensions.DependencyInjection;
using System;
public interface IMessageService
{
void SendMessage(string message);
}
public class ConsoleMessageService : IMessageService
{
public void SendMessage(string message)
{
Console.WriteLine(message);
}
}
using Microsoft.Extensions.DependencyInjection;
using System;
public interface IMessageService
{
void SendMessage(string message);
}
public class ConsoleMessageService : IMessageService
{
public void SendMessage(string message)
{
Console.WriteLine(message);
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
このコード・スニペットは、IMessageServiceというメッセージ送信ルールを作成する。これは、メッセージをどのように送信するかのプランを設定するようなものだ。 そして、ConsoleMessageServiceクラスは、Console.WriteLineを使ってメッセージを送信することで、このルールに従うようにしている。 この設定により、メッセージ送信のアイデアと実際のプロセスが分離され、必要に応じてメッセージの送信方法を後で変更することが容易になる。 アプリケーション内でメッセージングシステムを整理し、管理しやすくします。
class Program
{
static void Main(string[] args)
{
// Create a service provider
var serviceProvider = new ServiceCollection()
// Register the service implementation
.AddTransient<IMessageService, ConsoleMessageService>()
.BuildServiceProvider();
// Resolve the service
var messageService = serviceProvider.GetRequiredService<IMessageService>();
// Use the service to send a message
messageService.SendMessage("Hello,From Dependency Injection!");
}
}
class Program
{
static void Main(string[] args)
{
// Create a service provider
var serviceProvider = new ServiceCollection()
// Register the service implementation
.AddTransient<IMessageService, ConsoleMessageService>()
.BuildServiceProvider();
// Resolve the service
var messageService = serviceProvider.GetRequiredService<IMessageService>();
// Use the service to send a message
messageService.SendMessage("Hello,From Dependency Injection!");
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
このコードはツールを管理するためのserviceProviderを設定します。 これは、ConsoleMessageServiceツールを追加します。 その後、serviceProviderからIMessageServiceツールを取得し、コンソールに「Hello, Dependency Injection!」というメッセージを送信するために使用します。
出力: プログラムは文字列メッセージ「Hello, From Dependency Injection!」を表示します。
IronPDFは強力なC#用ライブラリであり、PDF生成の複雑なプロセスを簡素化し、HTMLからPDFを生成する機能や、PDFにテキストを追加したり、画像を使用してPDFを編集したりする操作、セキュアなドキュメントを作成するなど、PDF操作のための幅広い機能を提供します。
依存性注入機能とMicrosoft.Extensions.DependencyInjectionによる拡張メソッドを活用して.NET CoreアプリケーションにIronPDFライブラリを統合するには、次のように進めます:
PDF生成サービスを定義するインターフェースを作成します。
インターフェイスを実装する。
依存性注入コンテナにサービスを登録するには、拡張メソッドを使用します。
PDF生成サービスを定義するインターフェースを作成します。
public interface IPdfService
{
void GeneratePdf(string baseUrl, string query, string filePath);
}
public interface IPdfService
{
void GeneratePdf(string baseUrl, string query, string filePath);
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
PDFファイルを作成するためにIronPDFを使用してインターフェイスを実装します。
public class IronPdfService : IPdfService
{
public void GeneratePdf(string baseUrl, string query, string filePath)
{
License.LicenseKey = "Your-License-Key";
string encodedQuery = HttpUtility.UrlEncode(query);
string fullUrl = $"{baseUrl}?query={encodedQuery}";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf(fullUrl);
pdf.SaveAs(filePath);
Console.WriteLine($"PDF successfully created from: {fullUrl}");
Console.WriteLine($"Saved to: {filePath}");
}
}
public class IronPdfService : IPdfService
{
public void GeneratePdf(string baseUrl, string query, string filePath)
{
License.LicenseKey = "Your-License-Key";
string encodedQuery = HttpUtility.UrlEncode(query);
string fullUrl = $"{baseUrl}?query={encodedQuery}";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf(fullUrl);
pdf.SaveAs(filePath);
Console.WriteLine($"PDF successfully created from: {fullUrl}");
Console.WriteLine($"Saved to: {filePath}");
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
Program.csクラスで、依存性注入を設定します:
builder.Services.AddSingleton<IPdfService, IronPdfService>();
builder.Services.AddSingleton<IPdfService, IronPdfService>();
IRON VB CONVERTER ERROR developers@ironsoftware.com
このセットアップでは、IronPdfServiceでIPdfServiceインターフェイスを実装することで依存関係を解決し、PDF生成のためのシングルトンサービスタイプを確立します。 そして、アプリケーション全体で参照され、PDFを生成するための一貫した機能を保証します。
IPdfServiceをコントローラーやサービスにインジェクトして使用します。
public class MyController : Controller
{
private readonly IPdfService _pdfService;
public MyController(IPdfService pdfService)
{
_pdfService = pdfService;
}
public IActionResult GeneratePdf()
{
string baseUrl = "https://ironpdf.com/";
string query = "Hello World from IronPDF !";
string filePath = "Demo.pdf";
_pdfService.GeneratePdf(baseUrl, query, filePath);
return View();
}
}
public class MyController : Controller
{
private readonly IPdfService _pdfService;
public MyController(IPdfService pdfService)
{
_pdfService = pdfService;
}
public IActionResult GeneratePdf()
{
string baseUrl = "https://ironpdf.com/";
string query = "Hello World from IronPDF !";
string filePath = "Demo.pdf";
_pdfService.GeneratePdf(baseUrl, query, filePath);
return View();
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
この設定により、IronPdfServiceがMicrosoft Extensions Dependency Injectionコンテナによって作成され、管理されることが保証されます。 IPdfServiceインターフェイスの代替実装を提供することで、デフォルトのPDF生成サービスを簡単に置き換えることができます。
Microsoft.Extensions.DependencyInjectionは、依存性注入を実装するための.NET 6の強力なツールであり、アプリケーションの疎結合を促進し、テスト容易性を向上させます。 機能豊富なC#ライブラリであるIronPDFを統合することで、開発者は最小限の労力で簡単に包括的なPDFドキュメントを生成することができます。 IronPDFのライセンスが利用できます。