IRONSOFTWAREHOME
ENTWICKLER-UPDATES

Microsoft.Extensions.DependencyInjection .NET 9 (Arbeiten mit PDF)

Jacob Mellor, Chief Technology Officer @ Team Iron
Jacob Mellor
Updated: 21. April 2026

Microsoft.Extensions.DependencyInjection ist eine leistungsstarke Bibliothek von Microsoft .NET, die die Dependency Injection (DI) erleichtert, ein Software-Entwurfsmuster, das lockere Kopplung fördert und die Testbarkeit von Anwendungen verbessert. DI wird häufig mithilfe des eingebauten DI-Containers von .NET Core oder Bibliotheken wie Autofac und Unity implementiert. DI beinhaltet das Injizieren von Abhängigkeiten (Objekte, die eine Klasse benötigt) in eine Klasse, anstatt dass die Klasse ihre Abhängigkeiten erstellt. Dies geschieht typischerweise durch Konstruktor-, Methoden- oder Eigenschafteninjektion.

Microsoft.Extensions.DependencyInjection .NET 6 (Working With PDF): Figure 1 - Microsoft.Extensions.DependencyInjectionName documentation

Abhängigkeits-Injektions-Container

  1. Service Registrierung: Abhängigkeiten werden in einem DI-Container registriert, typischerweise an der Kompositionswurzel der Anwendung. Diese Registrierungen geben an, wie der Container die Abhängigkeiten erstellen und verwalten soll.

  2. Dependency Auflösung: Wenn eine Komponente eine Abhängigkeit anfordert, löst der DI-Container die Abhängigkeit, indem er eine Instanz eines registrierten Typs erstellt, der eine Erweiterungsmethode verwendet.

Arten der Dependency Injection

  • Konstruktorinjektion: Registrierte Dienste werden einer Klasse über ihren Konstruktor bereitgestellt, was die häufigste und empfohlene Form der DI ist.
  • Methodeninjektion: Dienste werden aufgelöst und als Parameter an eine Methode übergeben.
  • Eigenschafteninjektion: Singleton-Dienste oder Dienste mit einer festgelegten Lebenszeit können Klasseneigenschaften zugewiesen werden. Diese Vorgehensweise ist jedoch weniger verbreitet und wird oft als weniger wertig im Vergleich zur Konstruktorinjektion angesehen, da sie versteckte Abhängigkeiten einführen kann.

Verständnis von Lebensdauern in Dependency Injection (DI): Scoped, Transient, und Singleton

  1. Gescoped: Gescopte Abhängigkeiten werden einmal pro Anfrage oder Lebensdauerbereich erstellt, was bedeutet, dass der Container innerhalb einer einzelnen Anfrage oder eines Vorgangs dieselbe Instanz bereitstellt. Diese Konsistenz ist besonders nützlich in Webanwendungen, wo gescopte Abhängigkeiten helfen, eine stabile Abhängigkeit während einer Webanfrage aufrechtzuerhalten.
  2. Transient: Transiente Abhängigkeiten werden jedes Mal instanziiert, wenn sie vom Container angefordert werden. Dies bedeutet, dass jedes Mal, wenn eine transiente Abhängigkeit benötigt wird, eine neue Instanz erzeugt wird. Typischerweise werden transiente Abhängigkeiten für leichte, zustandslose Dienste oder Komponenten verwendet.
  3. Singleton: Singleton-Abhängigkeiten werden nur einmal instanziiert und während der gesamten Lebensdauer der Anwendung geteilt. Dies stellt sicher, dass dieselbe Instanz einer Singleton-Abhängigkeit für alle Anfragen während der Dauer der Anwendung verwendet wird. Singleton-Abhängigkeiten werden typischerweise für zustandsbehaftete Dienste oder Komponenten verwendet, die universellen Zugriff über die gesamte Anwendung benötigen.

Installation Microsoft.Extensions.DependencyInjection Paket

Um in einem .NET Core-Projekt mit Dependency Injection zu beginnen, müssen Sie zunächst das Microsoft.Extensions.DependencyInjection-Paket installieren. Dies kann über die NuGet-Paket-Manager-Konsole in Visual Studio mit dem folgenden Befehl erfolgen:

PM > Install-Package Microsoft.Extensions.DependencyInjection

Screenshot

Microsoft.Extensions.DependencyInjection .NET 6 (Arbeiten mit PDF): Abbildung 2 - Tippen Sie den Befehl in das Terminal ein, um das Paket zu installieren

Beispiel: Grundlegende Dependency Injection

In diesem Beispiel erstellen wir eine Beispielanwendung (Konsolenanwendung), in der wir einen Dienstanbieter verwenden, um Dienste aufzulösen und sie in unser Programm zu injizieren.

using Microsoft.Extensions.DependencyInjection;
using System;

// Define a service interface
public interface IMessageService
{
    void SendMessage(string message);
}

// Implement the service interface
public class ConsoleMessageService : IMessageService
{
    public void SendMessage(string message)
    {
        Console.WriteLine(message); // Output the message to the console
    }
}

Das Code-Snippet erstellt eine Schnittstelle IMessageService zum Senden von Nachrichten, wie einen Vertrag dafür, wie Nachrichten gesendet werden sollen. Die Klasse ConsoleMessageService implementiert diese Schnittstelle, indem sie Console.WriteLine verwendet, um Nachrichten zu senden. Diese Trennung ermöglicht es, das Konzept des Nachrichtensendens unabhängig davon zu ändern, wie sie versendet werden, und macht das System flexibel und handhabbar.

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

Dieser Code richtet einen serviceProvider ein, um Dienste zu verwalten. Er registriert ConsoleMessageService als die Implementierung für IMessageService, und macht es verfügbar, um überall dort injiziert zu werden, wo es benötigt wird. Die Methode Main ruft dann eine Instanz von IMessageService aus dem serviceProvider ab und verwendet sie, um eine Nachricht an die Konsole zu senden.

Ausgabe: Das Programm druckt die Zeichenketten-Nachricht "Hello, From Dependency Injection!"

Microsoft.Extensions.DependencyInjection .NET 6 (Arbeiten mit PDF): Abbildung 3 - Konsolenausgabe des obigen Codes

IronPDF: C# PDF-Bibliothek

IronPDF ist eine leistungsstarke Bibliothek für C#, die den komplexen Prozess der PDF-Erstellung vereinfacht und eine breite Palette von Funktionen zur PDF-Manipulation bietet, einschließlich der Möglichkeit, PDFs aus HTML zu generieren, Text zu PDFs hinzuzufügen und PDFs mit Bildern zu bearbeiten, sichere Dokumente zu erstellen und vieles mehr.

Microsoft.Extensions.DependencyInjection .NET 6 (Arbeiten mit PDF): Abbildung 4 - Microsoft.Extensions.DependencyInjection C# Beispiel (So funktioniert es für Entwickler): Abbildung 2 - IronPDF

Verwendung von IronPDF mit Dependency Injection

Um die IronPDF-Bibliothek in eine .NET Core-Anwendung zu integrieren, die Dependency Injection-Funktionen und Erweiterungsmethoden mit Microsoft.Extensions.DependencyInjection nutzt, gehen Sie wie folgt vor:

  1. Erstellen Sie ein Interface, um Ihren PDF-Erstellungsdienst zu definieren.
  2. Implementieren Sie das Interface.
  3. Verwenden Sie Erweiterungsmethoden, um den Dienst im Dependency Injection-Container zu registrieren.
  4. Injizieren Sie den Dienst nach Bedarf in Ihre Anwendung.

Benutzeroberfläche definieren

Erstellen Sie ein Interface, um Ihren PDF-Erstellungsdienst zu definieren.

public interface IPdfService
{
    void GeneratePdf(string baseUrl, string query, string filePath);
}

Implementiere Schnittstelle

Implementieren Sie das Interface unter Verwendung von IronPDF zur Erstellung der PDF-Datei.

using IronPdf;
using System;
using System.Web;

// Implement the PDF generation interface
public class IronPdfService : IPdfService
{
    public void GeneratePdf(string baseUrl, string query, string filePath)
    {
        License.LicenseKey = "Your-License-Key"; // Set the IronPDF license key
        string encodedQuery = HttpUtility.UrlEncode(query); // Encode the query string
        string fullUrl = $"{baseUrl}?query={encodedQuery}"; // Construct the full URL
        var renderer = new ChromePdfRenderer(); // Create a PDF renderer
        var pdf = renderer.RenderUrlAsPdf(fullUrl); // Render the PDF from the URL
        pdf.SaveAs(filePath); // Save the PDF to the specified file path
        Console.WriteLine($"PDF successfully created from: {fullUrl}");
        Console.WriteLine($"Saved to: {filePath}");
    }
}

Dienstleistung registrieren

Konfigurieren Sie in Ihrer Program.cs Klasse die Dependency Injection:

builder.Services.AddSingleton<IPdfService, IronPdfService>();

Diese Konfiguration löst Abhängigkeiten, indem das IPdfService-Interface mit IronPDFService implementiert wird, wobei eine Singleton-Dienstart für die PDF-Erstellung eingerichtet wird. Es wird dann in der gesamten Anwendung referenziert, um konsistente Funktionalität zur Erstellung von PDFs sicherzustellen.

Benutzung

Injizieren Sie IPdfService in Ihren Controller oder Dienst und verwenden Sie es:

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";
        
        // Use the injected PDF service to generate a PDF
        _pdfService.GeneratePdf(baseUrl, query, filePath);
        
        return View();
    }
}

Diese Konfiguration stellt sicher, dass der IronPDFService vom Microsoft Extensions Dependency Injection-Container erstellt und verwaltet wird. Sie können den standardmäßigen PDF-Erstellungsdienst mühelos durch eine alternative Implementierung des IPdfService-Interfaces ersetzen, ohne den Konsumcode ändern zu müssen.

Screenshot der PDF-Datei

Microsoft.Extensions.DependencyInjection .NET 6 (Arbeiten mit PDF): Abbildung 5 - Beispielausgabe unter Verwendung des Microsoft Extensions Dependency Injection Containers in Verbindung mit IronPDF

Abschluss

Microsoft.Extensions.DependencyInjection ist ein leistungsstarkes Werkzeug in .NET 6 für die Implementierung der Dependency Injection, die lockere Kopplung fördert und die Testbarkeit von Anwendungen verbessert. Durch die Integration von IronPDF, einer funktionsreichen C#-Bibliothek, können Entwickler umfassende PDF-Dokumente mühelos erstellen. Lizenzierung für IronPDF ist verfügbar.

Jacob Mellor, Chief Technology Officer @ Team Iron
Chief Technology Officer

Jacob Mellor ist Chief Technology Officer bei Iron Software und ein visionärer Ingenieur, der Pionierarbeit in der C# PDF-Technologie leistet. Als der ursprüngliche Entwickler hinter der Kern-Codebasis von Iron Software hat er die Produktarchitektur des Unternehmens seit seiner Gründung geprägt und es zusammen mit CEO Cameron Rimington in ein Unternehmen mit mehr als 50 Mitarbeitern verwandelt, das die NASA, Tesla und globale Regierungsbehörden beliefert.

...
Weiterlesen

Verwandte Artikel

Key in blue circle

Holen Sie sich sofort Ihren kostenlosen 30-Tage-Testschlüssel.

Your trial license will be sent to your email address

Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.

OR
bullet_checkedIhr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
Buchen Sie Ihre kostenlose Live-Demo
Booking Badge

Von Millionen von Ingenieur*innen weltweit vertraut

Kundenlogos von Iron Software
Erhalten Sie Ihre unverbindliche Beratung
Füllen Sie das Formular unten aus oder senden Sie eine E-Mail an sales@ironsoftware.com
Ihre Daten werden immer vertraulich behandelt.
Von Millionen von Ingenieur*innen weltweit vertraut
Kundenlogos von Iron Software
Erhalten Sie sofort Ihren kostenlosen 30-Tage-Testschlüssel.
Ihr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.
C# NuGet-Bibliothek für PDF
Installation mit NuGet

Version: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. Rechtsklick auf Referenzen, NuGet-Pakete verwalten
  2. Wählen Sie Durchsuchen und suchen Sie nach 'IronPDF'
  3. Paket auswählen und installieren
C# PDF DLL
Download DLL

Version: 2026.9

oder laden Sie den Windows-Installer hier herunter.

  1. Laden Sie IronPDF herunter und entpacken Sie es in ein Verzeichnis wie ~/Libs innerhalb Ihres Lösungsverzeichnisses
  2. Im Visual Studio-Projektmappen-Explorer klicken Sie mit der rechten Maustaste auf Referenzen. Wählen Sie Durchsuchen, "IronPDF.dll"

Lizenzen ab 749 $