IRONSOFTWAREHOME
ENTWICKLER-UPDATES

Autofac .NET 6 (Funktionsweise für Entwickler) | IronPDF

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

In der Welt der .NET-Entwicklung ist das effiziente Management von Abhängigkeiten entscheidend für den Aufbau skalierbarer, wartbarer und testbarer Anwendungen. Dependency Injection (DI) Container spielen eine entscheidende Rolle bei der Erreichung dieser Ziele, indem sie das Prinzip der Inversion of Control (IoC) erleichtern. Unter der Vielzahl an verfügbaren generischen Hosting-Mechanismus-Bibliotheken sticht Autofac als funktionsreiche und erweiterbare Framework for .NET hervor.

In diesem Artikel begeben wir uns auf eine Reise, um Autofac .NET 6 zu erkunden und seine Funktionen und Vorteile zu entfalten, indem wir praktische Beispiele für seine Nutzung aufzeigen. Später in diesem Artikel werden wir IronPDF kennenlernen, eine leistungsstarke PDF-Generierungsbibliothek von Iron Software. Wir werden auch einen Anwendungsfall präsentieren, in dem Autofac.NET und IronPDF zusammen verwendet werden.

Autofac .NET verstehen

Autofac ist ein Open-Source-IoC-Container for .NET, der umfassende Unterstützung für Dependency Injection und Komponentenregistrierung in Apps wie Web-APIs bietet. Entwickelt von Nicholas Blumhardt und gepflegt von einer engagierten Community, bietet Autofac eine robuste und flexible Lösung für das Management von Objektlebensdauern, die Lösung von Abhängigkeiten und die Komposition von Anwendungskomponenten.

Für weitere Informationen darüber, wie Autofac Ihre .NET-Anwendungen verbessert, sollten Sie die Ressourcen von IronPDF's .NET PDF Library erkunden, die erweiterte Funktionen für die PDF-Erstellung und -Bearbeitung hervorhebt. Sie können auch in die IronBarcode's .NET Barcode Library eintauchen, um praktische Anwendungen von Dependency Injection in der Barcodelerzeugung zu sehen.

Erfahren Sie mehr über zusätzliche Einblicke und praktische Beispiele mit Autofac in realen Szenarien, indem Sie die offizielle Seite von Iron Software besuchen, wo Sie eine umfassende Suite von Produkten wie IronOCR und IronXL finden, die nahtlos in Autofac integriert sind und Ihre .NET-Entwicklungsprozesse verbessern.

Funktionen von Autofac

  1. Container-Erstellung und Komponentenregistrierung: Sie können Container mit Autofac erstellen, indem Sie Komponenten in der Startup-Klasse registrieren. Sie können Komponenten mit Lambdas, Typen oder vorgefertigten Instanzen registrieren.

    public class Startup
    {
        public void ConfigureContainer()
        {
            var builder = new ContainerBuilder(); // Create a new container builder
            builder.RegisterInstance(new TaskRepository()).As<ITaskRepository>(); // Register an instance for ITaskRepository
            builder.RegisterType<TaskController>(); // Register TaskController type
            builder.Register(c => new LogManager(DateTime.Now)).As<ILogger>(); // Use lambda expression to register ILogger
            // Scan an assembly for components and register them
            builder.RegisterAssemblyTypes(myAssembly).Where(t => t.Name.EndsWith("Repository")).AsImplementedInterfaces();
            var container = builder.Build(); // Build the container
        }
    }
  2. Express-Abhängigkeiten: Autofac kann Konstruktorparameter einfügen, Eigenschaften injizieren und Methoden injizieren.

    public class TaskController
    {
        private ITaskRepository _repository;
        private ILogger _logger;
    
        public TaskController(ITaskRepository repository, ILogger logger)
        {
            _repository = repository; // Assign injected repository to the local variable
            _logger = logger; // Assign injected logger to the local variable
        }
    }
  3. Flexibles Modulsystem: Autofac-Module schaffen ein Gleichgewicht zwischen XML-Konfiguration und codebasierter Registrierung. Sie können komplexe Registrierungen im Code festlegen oder das Verhalten zur Bereitstellungszeit mithilfe von XML ändern.

    public class CarTransportModule : Module
    {
        public bool ObeySpeedLimit { get; set; }
    
        protected override void Load(ContainerBuilder builder)
        {
            builder.RegisterType<Car>().As<IVehicle>(); // Register Car as IVehicle
            if (ObeySpeedLimit)
                builder.RegisterType<SaneDriver>().As<IDriver>(); // Register SaneDriver if speed limit is to be obeyed
            else
                builder.RegisterType<CrazyDriver>().As<IDriver>(); // Register CrazyDriver otherwise
        }
    }
  4. Einfache Erweiterungspunkte: Autofac bietet Aktivierungsereignisse, um die Aktivierung oder Freigabe von Komponenten anzupassen.

    var builder = new ContainerBuilder();
    builder.RegisterType<Listener>().As<IListener>().OnActivated(e => e.Instance.StartListening()); // Setup activation event
    builder.RegisterType<Processor>().OnActivating(e => e.Instance.Initialize()); // Setup activating event
    var container = builder.Build();

Schlüsselmerkmale von Autofac.NET

  1. Flexible Komponentenregistrierung: Autofac ermöglicht es Entwicklern, Komponenten mithilfe verschiedener Registrierungstechniken zu registrieren, darunter manuelle Registrierung, Assembly-Scanning und attributbasierte Registrierung. Diese Flexibilität ermöglicht eine feinkörnige Kontrolle über die Instanziierung und Konfiguration von Komponenten.

  2. Lebenszyklusmanagement: Autofac unterstützt verschiedene Objektlebenszyklusbereiche, darunter Singleton, Instanz pro Abhängigkeit, Instanz pro Lebenszyklusbereich und Instanz pro Anfrage. Diese detaillierte Kontrolle über die Objektlebensdauer gewährleistet eine effiziente Ressourcennutzung und verhindert Speicherlecks in langlaufenden Anwendungen.

  3. Automatische Abhängigkeitsauflösung: Autofac löst Abhängigkeiten automatisch auf Basis der registrierten Komponentenregistrierungen und ihrer Abhängigkeiten auf. Diese automatische Verkabelung vereinfacht die Konfiguration komplexer Objektgrafen und fördert die lose Kopplung zwischen Komponenten.

  4. Modulkomposition: Autofac ermöglicht es Entwicklern, Komponentenregistrierungen mithilfe von Modulen zu organisieren und zu kapseln. Module dienen als logische Container für verwandte Registrierungen, die das Management und die Wartung von großangelegten Anwendungen mit mehreren Komponenten erleichtern.

  5. Interception und AOP: Autofac bietet Unterstützung für Interception und aspektorientierte Programmierung (AOP) durch seine Interception-Erweiterung. Mit Interception können Entwickler Querschnittsbedenken wie Logging, Caching und Sicherheit auf Komponenten anwenden, ohne deren Implementierung zu ändern.

  6. ASP.NET Core und .NET Core Integration: Autofac integriert sich nahtlos in .NET Core und ASP.NET Core und bietet erstklassige Unterstützung für Dependency Injection in modernen Webanwendungen und Microservices. Es nutzt die integrierte Dienstanbieterabstraktion, um Kompatibilität und Interoperabilität mit dem .NET-Ökosystem sicherzustellen.

Praktische Beispiele mit Autofac.NET

Lassen Sie uns einige praktische Beispiele erkunden, um die Verwendung von Autofac.NET zu veranschaulichen:

public class Program
{
    public static void Main()
    {
        // Setting up Autofac container
        var builder = new ContainerBuilder();

        // Registering types manually
        builder.RegisterType<MyService>().As<IMyService>();

        // Registering types using assembly scanning
        builder.RegisterAssemblyTypes(typeof(MyAssembly).Assembly)
            .Where(t => t.Name.EndsWith("Repository"))
            .AsImplementedInterfaces();

        // Registering modules
        builder.RegisterModule(new MyModule());

        // Building the container
        var container = builder.Build();

        // Resolving dependencies
        using (var scope = container.BeginLifetimeScope())
        {
            var service = scope.Resolve<IMyService>();
            service.DoSomething();
        }
    }
}

In diesem Abschnitt haben wir die praktische Implementierung von Autofac.NET für Dependency Injection demonstriert. Von der manuellen Registrierung bis hin zum Assembliescanning und der modulbasierten Registrierung haben wir gezeigt, welche Flexibilität Autofac beim Management von Abhängigkeiten bietet. Durch die Nutzung dieser Techniken können Entwickler den Dependency Injection-Prozess ihrer Anwendung rationalisieren und die Wartbarkeit und Skalierbarkeit erhöhen.

Für weitere Informationen darüber, wie Iron Software-Produkte in Ihre .NET-Anwendungen integriert werden können, um die Funktionalität weiter zu rationalisieren und zu verbessern, besuchen Sie die IronPDF-Dokumentation, wo Sie lernen können, wie man PDF-Dokumente programmgesteuert generiert und bearbeitet, oder besuchen Sie die Iron Software-Website, um eine breite Palette leistungsstarker .NET-Bibliotheken zu entdecken, wie IronBarcode zum Lesen und Schreiben von Barcodes und IronOCR für fortschrittliche optische Zeichenverarbeitung.

Vorteile der Verwendung von Autofac.NET

  1. Einfachheit und Flexibilität: Autofac bietet eine einfache und intuitive API zum Registrieren und Auflösen von Komponenten, wodurch die Abhängigkeitsinjektion einfach zu implementieren und zu warten ist.

  2. Testbarkeit und Wartbarkeit: Durch die Förderung loser Kopplung und Abhängigkeitsumkehr verbessert Autofac die Testbarkeit und Wartbarkeit von .NET Anwendungen und ermöglicht so problemlos Unit-Tests und Refactoring.

  3. Leistung und Skalierbarkeit: Dank seiner geringen Größe und hohen Laufzeitleistung eignet sich Autofac für leistungsstarke Anwendungen und skalierbare Systeme mit großen Objektgraphen.

  4. Erweiterbarkeit und Anpassbarkeit: Die erweiterbare Architektur von Autofac ermöglicht es Entwicklern, das Verhalten von Autofac durch benutzerdefinierte Module, Registrierungsquellen und Middleware-Komponenten zu erweitern und anzupassen und so den vielfältigen Anwendungsanforderungen gerecht zu werden.

  5. Community und Support: Mit einer aktiven Entwicklergemeinschaft und einer umfassenden Dokumentation bietet Autofac hervorragenden Support und Ressourcen zum Erlernen, zur Fehlerbehebung und zur Weiterentwicklung des Frameworks.

Autofac-Lizenz

Autofac wird mit einer MIT-Lizenz geliefert, die kostenlos für Entwicklungs- und kommerzielle Zwecke genutzt werden kann.

Einführung in IronPDF von Iron Software

Autofac .NET 6 (So funktioniert es für Entwickler): Abbildung 1 - IronPDF-Webseite

IronPDF ist eine robuste C#-PDF-Bibliothek, die eine umfassende Lösung zur Verwaltung von PDFs in .NET-Projekten bietet. Ob Ihre Anforderungen die Erstellung, Bearbeitung, den Export, die Sicherung, das Laden oder die Manipulation von PDF-Dokumenten betreffen, IronPDF bietet die benötigten Werkzeuge. Hier sind einige seiner herausragenden Funktionen und Anwendungen:

Wichtige Merkmale

  • HTML-zu-PDF-Konvertierung: HTML-Inhalte mühelos in PDF konvertieren. Generieren Sie PDFs aus HTML, MVC, ASPX und Bildern.

  • PDF-Verwaltung: Mit über 50 Funktionen ermöglicht IronPDF das Signieren, Bearbeiten und Extrahieren von Inhalten aus PDFs und vereinfacht so digitale Signaturen und Änderungen.

  • Plattformübergreifende Unterstützung: IronPDF ist kompatibel mit C#, F# und VB .NET und läuft auf verschiedenen .NET Versionen, einschließlich .NET Core, .NET Standard und .NET Framework. Es ist auch für Java, Node.js und Python verfügbar.

Um mehr darüber zu erfahren, wie IronPDF PDF-Funktionalitäten in Ihre Projekte integrieren kann, besuchen Sie die IronPDF-Produktseite.

Für einen umfassenden Überblick über Iron Software's Produktangebote, einschließlich IronBarcode, IronOCR und mehr, besuchen Sie die Iron Software-Homepage.

Kompatibilität und Umgebungen

  • .NET Versionen: Unterstützt C#, VB .NET und F#.

  • Projekttypen: Geeignet für Webanwendungen ( Blazor & WebForms mit IronPDF ), Desktop-Anwendungen (WPF & MAUI) und Konsolenanwendungen.

  • App-Umgebungen: Kompatibel mit Windows, Linux, Mac, Docker, Azure, AWS und mehr.

  • IDEs: Lässt sich nahtlos in Microsoft Visual Studio und JetBrains Rider integrieren.

  • Betriebssysteme & Prozessoren: Läuft unter Windows, Mac und Linux (x64, x86, ARM).

PDF-Standards und Bearbeitung

  • Kompatibilität: Unterstützt verschiedene PDF-Versionen (1.2 - 1.7), PDF/UA und PDF/A.

  • Anpassung: Eigenschaften, Sicherheit und Komprimierung für PDF-Dateien festlegen.

  • Metadaten und Struktur: Metadaten, Revisionsverlauf und Dokumentstruktur bearbeiten.

  • Vorlagen und Einstellungen: Seitenvorlagen, Kopf- und Fußzeilen sowie Seiteneinstellungen anwenden.

Für weitere Informationen zu diesen Funktionen und ihrer Umsetzung besuchen Sie die ausführliche Anleitung zur PDF-Erstellung und -Bearbeitung auf der offiziellen Seite von IronPDF.

Leistungsoptimierung

  • Effizienz: Vollständige Multithreading- und asynchrone Unterstützung für eine effiziente PDF-Generierung.

  • Priorität: Der Fokus liegt auf Genauigkeit, Benutzerfreundlichkeit und Geschwindigkeit.

Jetzt sehen wir uns ein praktisches Beispiel mit diesen beiden Bibliotheken an.

PDF-Dokument mit Autofac.NET und IronPDF generieren

Zuerst erstellen wir eine Visual Studio-Konsolenanwendung

Autofac .NET 6 (So funktioniert es für Entwickler): Abbildung 2 - Erstellen einer Visual Studio-Konsolenanwendung

Geben Sie den Projektnamen und den Speicherort an.

Autofac .NET 6 (So funktioniert es für Entwickler): Abbildung 3 - Projektangaben konfigurieren

Für den nächsten Schritt wählen Sie die erforderliche .NET-Version aus und klicken Sie auf Erstellen.

Installieren Sie dann die IronPDF-Bibliothek aus dem NuGet-Paket im Visual Studio Package Manager

Autofac .NET 6 (So funktioniert es für Entwickler): Abbildung 4 - Notwendiges IronPDF-Paket installieren

Besuchen Sie die IronPDF-Dokumentation für weitere Informationen zur Installation und Nutzung der IronPDF-Bibliothek.

Installieren Sie Autofac aus dem NuGet-Paket im Visual Studio Package Manager

Autofac .NET 6 (So funktioniert es für Entwickler): Abbildung 5 - Notwendiges Autofac-Paket installieren

Erfahren Sie mehr über Autofac, indem Sie die Autofac-Dokumentationsseite besuchen.

Code-Beispiel: Autofac und IronPDF

using Autofac;
using CacheManager.Core;
using IronPdf;
using System.Reflection;

namespace IronPdfDemos
{
    public class AutoFac
    {
        public static void Execute()
        {
            // Instantiate Cache and ChromePdfRenderer
            var renderer = new ChromePdfRenderer();
            var cache = CacheFactory.Build("ironPdfAutofac", settings =>
            {
                settings.WithDictionaryHandle();
            });

            // Prepare HTML content
            var content = "<h1>Demonstrate Autofac with IronPDF</h1>";
            content += "<p>This is an illustration of using Autofac for dependency injection and IronPDF for generating PDF documents.</p>";
            content += "<h2>Setting up Autofac container</h2>";

            // Setting up Autofac container
            var builder = new ContainerBuilder();
            content += "<p>var builder = new ContainerBuilder();</p>";

            content += "<h2>Registering types manually</h2>";
            // Registering types manually
            builder.RegisterType<MyService>().As<IMyService>();
            content += "<p>builder.RegisterType<MyService>().As<IMyService();</p>";

            content += "<h2>Registering types using assembly scanning</h2>";
            // Registering types using assembly scanning
            builder.RegisterAssemblyTypes(typeof(AutoFac).Assembly)
                .Where(t => t.Name.EndsWith("Repository"))
                .AsImplementedInterfaces();
            content += "<p>builder.RegisterAssemblyTypes(typeof(AutoFac).Assembly).Where(t => t.Name.EndsWith(\"Repository\")).AsImplementedInterfaces();</p>";

            content += "<h2>Registering modules</h2>";
            // Registering modules
            builder.RegisterModule(new MyModule());
            content += "<p>builder.RegisterModule(new MyModule());</p>";

            content += "<h2>Building the container</h2>";
            // Building the container
            var container = builder.Build();
            content += "<p>var container = builder.Build();</p>";

            content += "<h2>Resolving dependencies</h2>";
            // Resolving dependencies
            using (var scope = container.BeginLifetimeScope())
            {
                var service = scope.Resolve<IMyService>();
                service.DoSomething();
            }
            content += "<p>var service = scope.Resolve<IMyService();</p>";

            // Create a PDF from the HTML string using C#
            var pdf = renderer.RenderHtmlAsPdf(content);
            // Export to a file or Stream
            pdf.SaveAs("autofac.pdf");
            Console.WriteLine("We are done...");
            Console.ReadKey();
        }
    }

    internal interface IMyService
    {
        void DoSomething();
    }

    internal class MyModule : Module
    {
        protected override void Load(ContainerBuilder builder)
        {
            // Register module dependencies here
        }
    }

    internal class MyService : IMyService
    {
        public void DoSomething()
        {
            Console.WriteLine("DoSomething");
        }
    }
}

Code-Erklärung

Schauen wir uns das bereitgestellte Code-Snippet an:

  1. ChromePdfRenderer-Einrichtung:

    • Der Code initialisiert eine ChromePdfRenderer Instanz, um PDFs aus HTML-Inhalt zu rendern, eine Hauptfunktion von IronPDF.
  2. HTML-Inhaltsvorbereitung:

    • Die content Variable ist ein HTML-String, der zum Erzeugen des PDFs verwendet wird.

    • Es enthält ein <h1> Tag mit dem Titel "Demonstrate Autofac with IronPDF".

  3. Autofac-Container einrichten:

    • Der Code erstellt eine Instanz von ContainerBuilder namens builder.

    • Dies ist der erste Schritt beim Einrichten eines Autofac-Containers für Dependency Injection.

  4. Manuelle Registrierung der Typen:

    • Es registriert einen Typ MyService als Implementierung der IMyService Schnittstelle.

    • Dies ermöglicht Autofac, Abhängigkeiten bei Bedarf aufzulösen.

  5. Registrieren von Typen mittels Assembly-Scanning:

    • Es durchsucht das Assembly, das den AutoFac Typ enthält.
  • Typen, deren Namen mit "Repository" enden, werden als Implementierungen ihrer entsprechenden Schnittstellen registriert.
  1. Module registrieren:

    • Es registriert ein Modul namens MyModule.

    • Module ermöglichen die Gruppierung verwandter Registrierungen.

  2. Erstellung des Containers:

    • Der Container wird aus den registrierten Komponenten mit der builder.Build() Methode aufgebaut.
  3. Auflösen von Abhängigkeiten:

    • Innerhalb eines Lebenszeitbereichs (using (var scope = container.BeginLifetimeScope())) wird eine Instanz von IMyService aufgelöst.

    • Die DoSomething Methode wird auf dem aufgelösten Dienst aufgerufen.

  4. PDF-Generierung:

    • Ein PDF wird aus dem Inhalt mit dem ChromePdfRenderer erstellt.

    • Das resultierende PDF wird unter dem Namen 'autofac.pdf' gespeichert.

Ausgabe

Autofac .NET 6 (So funktioniert es für Entwickler): Abbildung 6 - Ausgegebenes PDF aus dem vorherigen Codebeispiel

IronPDF-Lizenz

IronPDF benötigt einen Lizenzschlüssel. Platzieren Sie den Lizenzschlüssel in der appSettings.json Datei wie unten gezeigt.

{
  "IronPdf.License.LicenseKey": "The Key Here"
}
JSON
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 $