Test in einer Live-Umgebung
Test in der Produktion ohne Wasserzeichen.
Funktioniert überall, wo Sie es brauchen.
Microsoft.Extensions.DependencyInjection ist eine leistungsfähige Bibliothek, die von Microsoft .NET zur Verfügung gestellt wird, um die Dependency Injection (DI)ist ein Software-Entwurfsmuster, das eine lose Kopplung fördert und die Testbarkeit von Anwendungen verbessert. DI wird häufig mit Hilfe von .NET Core's eingebauter DI-Container oder Bibliotheken wie Autofac und Unity. DI beinhaltet das Einfügen von Abhängigkeiten (objekte, die eine Klasse benötigt) in eine Klasse zu integrieren, anstatt dass die Klasse ihre Abhängigkeiten erzeugt. Dies geschieht in der Regel durch eine Konstruktor-, Methoden- oder Eigenschaftsinjektion.
Dienstregistrierung: Abhängigkeiten werden in einem DI-Container registriert, typischerweise im Composition Root der Anwendung. Diese Registrierungen geben an, wie der Container die Abhängigkeiten erstellen und verwalten soll.
Scoped: Scoped-Abhängigkeiten werden einmal pro Anfrage oder Lebenszeitbereich erstellt, d. h. der Container stellt dieselbe Instanz innerhalb einer einzigen Anfrage oder Operation bereit. Diese Konsistenz ist vor allem in Webanwendungen nützlich, wo scoped dependencies dazu beitragen, eine stabile Abhängigkeit während einer Webanfrage aufrechtzuerhalten.
Transiente: Transiente Abhängigkeiten werden jedes Mal instanziiert, wenn sie vom Container angefordert werden. Dies bedeutet, dass eine neue Instanz einer transienten Abhängigkeit immer dann erzeugt wird, wenn sie benötigt wird. Typischerweise werden transiente Abhängigkeiten für leichtgewichtige, zustandslose Dienste oder Komponenten verwendet.
Um die Dependency Injection in einem .NET Core-Projekt zu verwenden, müssen Sie zunächst Folgendes installieren Microsoft.Extensions.DependencyInjection-Paket. Dies kann über die NuGet-Paketmanager-Konsole in Visual Studio mit dem folgenden Code erfolgen:
Install-Package Microsoft.Extensions.DependencyInjection
Install-Package Microsoft.Extensions.DependencyInjection
IRON VB CONVERTER ERROR developers@ironsoftware.com
In diesem Beispiel wollen wir eine Beispielanwendung erstellen (konsolenanwendung) wobei wir einen Dienstanbieter nutzen, um Dienste aufzulösen und in unser Programm zu integrieren.
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
Das Codeschnipsel erstellt eine Regel für den Versand von Nachrichten namens IMessageService. Es ist wie die Einrichtung eines Plans, wie Nachrichten gesendet werden sollen. Dann wird die Klasse ConsoleMessageService dazu gebracht, diese Regel zu befolgen, indem Console.WriteLine zum Senden von Nachrichten verwendet wird. Dadurch wird der Gedanke des Versendens von Nachrichten vom eigentlichen Prozess getrennt, so dass es einfacher ist, die Art und Weise des Versendens von Nachrichten später zu ändern, falls erforderlich. Sie hilft, das Nachrichtensystem zu organisieren und in der Anwendung einfach zu verwalten.
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
Dieser Code richtet einen serviceProvider zur Verwaltung von Werkzeugen ein. Es fügt ein ConsoleMessageService-Werkzeug hinzu. Dann ruft es das Tool IMessageService von serviceProvider ab und verwendet es, um die Nachricht "Hello, Dependency Injection" zu senden!" an die Konsole.
Ausgabe: Das Programm gibt die String-Meldung "Hello, From Dependency Injection" aus!"
IronPDF ist eine leistungsstarke Bibliothek für C#, die den komplexen Prozess der PDF-Erzeugung vereinfacht und eine breite Palette von Funktionen für die PDF-Bearbeitung bietet, einschließlich der Fähigkeit, PDF-Dateien zu erzeugen PDFs aus HTMLder Vorgang der Addition text und bilder, die Erstellung sicherer Dokumente und vieles mehr.
Um die IronPDF-Bibliothek in eine .NET Core-Anwendung zu integrieren, die die Funktionen der Dependency Injection und die Erweiterungsmethoden mit Microsoft.Extensions.DependencyInjection nutzt, können Sie wie folgt vorgehen:
Erstellen Sie eine Schnittstelle, um Ihren PDF-Generierungsdienst zu definieren.
Implementieren Sie die Schnittstelle.
Verwenden Sie die Erweiterungsmethoden, um den Dienst im Container für die Injektion von Abhängigkeiten zu registrieren.
Erstellen Sie eine Schnittstelle, um Ihren PDF-Generierungsdienst zu definieren.
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
Implementieren Sie die Schnittstelle mit IronPDF für die Erstellung der PDF-Datei.
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
Konfigurieren Sie in Ihrer Klasse Program.cs die Injektion von Abhängigkeiten:
builder.Services.AddSingleton<IPdfService, IronPdfService>();
builder.Services.AddSingleton<IPdfService, IronPdfService>();
IRON VB CONVERTER ERROR developers@ironsoftware.com
Dieses Setup löst Abhängigkeiten auf, indem es die IPdfService-Schnittstelle mit IronPdfService implementiert und so einen singulären Diensttyp für die PDF-Erzeugung schafft. Sie wird dann in der gesamten Anwendung referenziert, um eine einheitliche Funktionalität für die Erstellung von PDFs zu gewährleisten.
Injizieren Sie IPdfService in Ihren Controller oder Dienst und verwenden Sie ihn:
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
Dieses Setup stellt sicher, dass der IronPdfService vom Microsoft Extensions Dependency Injection-Container erstellt und verwaltet wird. Sie können den standardmäßigen PDF-Erzeugungsdienst mühelos ersetzen, indem Sie eine alternative Implementierung für die IPdfService-Schnittstelle anbieten, ohne dass Sie den verbrauchenden Code ändern müssen.
Microsoft.Extensions.DependencyInjection ist ein leistungsfähiges Tool in .NET 6 zur Implementierung von Dependency Injection, das die lose Kopplung fördert und die Testbarkeit von Anwendungen verbessert. Durch die Integration von IronPDF, einer funktionsreichen C#-Bibliothek, können Entwickler problemlos erzeugen ist verfügbar.
9 .NET API-Produkte für Ihre Bürodokumente