IRONSOFTWAREHOME
MISES À JOUR POUR LES DÉVELOPPEURS

Microsoft.Extensions .DependencyInjection .NET 9 (Travailler avec PDF)

Jacob Mellor, Directeur technique @ Team Iron
Jacob Mellor
Updated: 21 avril 2026

La bibliothèque Microsoft.Extensions.DependencyInjection est une puissante bibliothèque fournie par Microsoft .NET pour faciliter l'injection de dépendances (DI), un modèle de conception logicielle qui favorise le couplage lâche et améliore la testabilité des applications. La DI est souvent mise en œuvre en utilisant le conteneur DI intégré de .NET Core ou des bibliothèques comme Autofac et Unity. La DI consiste à injecter des dépendances (objets dont une classe a besoin) dans une classe au lieu que la classe crée ses dépendances. Cela se fait généralement par injection de constructeur, de méthode ou de propriété.

Microsoft.Extensions.DependencyInjection .NET 6 (Travail avec PDF) : Figure 1 - Documentation Microsoft.Extensions.DependencyInjectionName

Conteneur d'injection de dépendances

  1. Enregistrement de service : Les dépendances sont enregistrées dans un conteneur DI, généralement à la racine de composition de l'application. Ces enregistrements spécifient comment le conteneur doit créer et gérer les dépendances.

  2. Résolution des dépendances : Lorsqu'un composant demande une dépendance, le conteneur DI résout la dépendance en créant une instance d'un type enregistré qui utilise une méthode d'extension.

Types d'injection de dépendances

  • Injection par constructeur : Les services enregistrés sont fournis à une classe par son constructeur, qui est la forme la plus courante et recommandée de DI.
  • Injection par méthode : Les services sont résolus et passés en tant que paramètres à une méthode.
  • Injection par propriété : Les services Singleton ou les services à durée de vie limitée peuvent être attribués aux propriétés de la classe. Cependant, cette approche est moins courante et souvent considérée comme inférieure à l'injection par constructeur car elle peut introduire des dépendances cachées.

Comprendre les durées de vie dans l'injection de dépendances (DI) : Spécifique, Transitoire et Singleton

  1. Spécifique : Les dépendances spécifiques sont créées une fois par demande ou portée de vie, ce qui signifie que le conteneur fournit la même instance lors d'une seule demande ou opération. Cette cohérence est particulièrement utile dans les applications Web, où les dépendances spécifiques aident à maintenir une dépendance stable tout au long d'une requête Web.
  2. Transitoire : Les dépendances transitoires sont instanciées chaque fois qu'elles sont demandées au conteneur. Cela implique qu'une nouvelle instance d'une dépendance transitoire est générée à chaque fois qu'elle est nécessaire. Typiquement, les dépendances transitoires sont utilisées pour les services ou composants légers et sans état.
  3. Singleton : Les dépendances Singleton sont instanciées une seule fois et partagées tout au long de la durée de vie de l'application. Cela garantit que la même instance d'une dépendance Singleton est utilisée pour toutes les requêtes pendant toute la durée de l'application. Les dépendances Singleton sont généralement utilisées pour les services ou composants avec état qui doivent être universellement accessibles dans toute l'application.

Installation du package Microsoft.Extensions.DependencyInjection

Pour commencer à utiliser l'injection de dépendances dans un projet .NET Core, vous devez d'abord installer le package Microsoft.Extensions.DependencyInjection. Cela peut être fait via la console de gestionnaire de packages NuGet dans Visual Studio avec la commande suivante :

PM > Install-Package Microsoft.Extensions.DependencyInjection

Capture d'écran

Microsoft.Extensions.DependencyInjection .NET 6 (Travail avec PDF) : Figure 2 - Tapez la commande dans le terminal pour installer le package

Exemple : Injection de dépendances de base

Dans cet exemple, créons une application exemple (application console) dans laquelle nous utiliserons un fournisseur de services pour résoudre les services et les injecter dans notre programme.

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
    }
}

L'extrait de code crée une interface IMessageService pour l'envoi de messages, comme un contrat précisant comment les messages doivent être envoyés. La classe ConsoleMessageService implémente cette interface en utilisant Console.WriteLine pour envoyer des messages. Cette séparation permet de modifier le concept d'envoi de messages indépendamment de la manière dont ils sont envoyés, ce qui rend le système flexible et gérable.

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

Ce code configure un serviceProvider pour gérer les services. Il enregistre ConsoleMessageService comme implémentation de IMessageService, le rendant disponible pour être injecté où nécessaire. La méthode Main récupère ensuite une instance de IMessageService à partir du serviceProvider et l'utilise pour envoyer un message à la console.

Sortie : Le programme imprime le message de chaîne "Bonjour, depuis l'injection de dépendances !"

Microsoft.Extensions.DependencyInjection .NET 6 (Travail avec PDF) : Figure 3 - Sortie console du code ci-dessus

IronPDF : Bibliothèque PDF en C#

IronPDF est une bibliothèque puissante pour C# qui simplifie le processus complexe de génération de PDF, offrant un large éventail de fonctionnalités pour la manipulation de PDF, y compris la capacité de générer des PDF à partir de HTML, d'opérer en ajoutant du texte aux PDF et de modifier des PDF avec des images, créer des documents sécurisés, et bien plus encore.

Microsoft.Extensions.DependencyInjection .NET 6 (Travail avec PDF) : Figure 4 - Exemple C# Microsoft.Extensions.DependencyInjection (Comment cela fonctionne pour les développeurs) : Figure 2 - IronPDF

Utiliser IronPDF avec l'injection de dépendances

Pour intégrer la bibliothèque IronPDF dans une application .NET Core tirant parti des fonctionnalités d'injection de dépendances et des méthodes d'extension avec Microsoft.Extensions.DependencyInjection, vous pouvez procéder comme suit :

  1. Créez une interface pour définir votre service de génération de PDF.
  2. Implémentez l'interface.
  3. Utilisez les méthodes d'extension pour enregistrer le service dans le conteneur d'injection de dépendances.
  4. Injectez le service dans votre application selon les besoins.

Définir l'interface

Créez une interface pour définir votre service de génération de PDF.

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

Implémenter l'interface

Implémentez l'interface avec IronPDF pour créer le fichier PDF.

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

Enregistrer le service

Dans votre classe Program.cs, configurez l'injection de dépendances :

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

Cette configuration résout les dépendances en implémentant l'interface IPdfService avec IronPDFService, établissant un type de service singleton pour la génération de PDF. Il est ensuite référencé dans toute l'application, garantissant une fonctionnalité cohérente pour la génération de PDF.

Utilisation

Injectez IPdfService dans votre contrôleur ou service et utilisez-le :

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();
    }
}

Cette configuration garantit que IronPDFService est créé et géré par le conteneur d'injection de dépendances Microsoft Extensions. Vous pouvez remplacer facilement le service de génération de PDF par défaut en proposant une implémentation alternative pour l'interface IPdfService, sans modifier le code consommateur.

Capture d'écran du fichier PDF

Microsoft.Extensions.DependencyInjection .NET 6 (Travail avec PDF) : Figure 5 - Exemple de sortie en utilisant le conteneur Microsoft Extensions Dependency Injection en conjonction avec IronPDF

Conclusion

Microsoft.Extensions.DependencyInjection est un outil puissant dans .NET 6 pour implémenter l'injection de dépendances, qui favorise le couplage lâche et améliore la testabilité des applications. En intégrant IronPDF, une riche bibliothèque C#, les développeurs peuvent facilement générer des documents PDF complets avec un effort minimal. La licence pour IronPDF est disponible.

Jacob Mellor, Directeur technique @ Team Iron
Directeur technique

Jacob Mellor est directeur de la technologie chez Iron Software et un ingénieur visionnaire pionnier de la technologie C# PDF. En tant que développeur à l'origine de la base de code centrale d'Iron Software, il a façonné l'architecture des produits de l'entreprise depuis sa création, la transformant aux côtés du PDG Cameron Rimington en une entreprise de plus de 50 personnes au service de la NASA, de Tesla et d'agences gouvernementales mondiales.

...
Lire la suite

Articles connexes

Key in blue circle

Obtenez votre clé d'essai de 30 jours instantanément.

Your trial license will be sent to your email address

Aucune restriction. 100 % débloqué. Pas de carte bancaire.

OR
bullet_checkedAucune carte de crédit ou création de compte requiseAucune restriction. 100 % débloqué. Pas de carte bancaire.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
Réservez votre Démonstration en direct gratuite
Booking Badge

De confiance par des millions d'ingénieurs dans le monde entier

Logos des clients d'Iron Software
Obtenez Votre Consultation sans Engagement
Remplissez le formulaire ci-dessous ou envoyez un email à sales@ironsoftware.com
Vos informations seront toujours gardées confidentielles.
De confiance par des millions d'ingénieurs dans le monde entier
Logos des clients d'Iron Software
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise
Bibliothèque C# NuGet pour PDF
Installer avec NuGet

Version : 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. Dans l'explorateur de solutions, faites un clic droit sur Références, Gestion des packages NuGet
  2. Sélectionnez Parcourir et recherchez « IronPDF »
  3. Sélectionnez le package et installez
C# PDF DLL
Télécharger DLL

Version : 2026.9

ou téléchargez l'installateur Windows ici.

  1. Téléchargez et décompressez IronPDF à un emplacement tel que ~/Libs dans votre répertoire de solution
  2. Dans l'explorateur de solutions Visual Studio, faites un clic droit sur Références. Sélectionnez Parcourir, « IronPDF.dll »

Licences à partir de 749 $