using IronPdf;
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from a HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
// Export to a file or Stream
pdf.SaveAs("output.pdf");
// Advanced Example with HTML Assets
// Load external html assets: Images, CSS and JavaScript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
Microsoft.Extensions .DependencyInjection .NET 9 (Travailler avec PDF)
Kannapat Udonpant
août 13, 2024
Mise à jour janvier 29, 2024
Partager:
Microsoft.Extensions.DependencyInjection est une puissante bibliothèque fournie par Microsoft .NET pour faciliter l'injection de dépendance(DI)il s'agit d'un modèle de conception de logiciel qui favorise le couplage lâche et améliore la testabilité des applications. L'identification automatique est souvent mise en œuvre à l'aide de.NET Core la traduction doit être professionnelle, en conservant la précision technique tout en expliquant les caractéristiques et les avantages de ces outils de développement. DI implique l'injection de dépendances(les objets dont une classe a besoin) dans une classe plutôt que la classe ne crée ses dépendances. Cela se fait généralement par le biais d'un constructeur, d'une méthode ou d'une injection de propriété.
Conteneur d'injection de dépendance
Enregistrement des services: Les dépendances sont enregistrées dans un conteneur DI, généralement à la racine de composition de l'application. Ces enregistrements précisent comment le conteneur doit créer et gérer les dépendances.
**Lorsqu'un composant demande une dépendance, le conteneur DI la résout en créant une instance d'un type enregistré qui utilise une méthode d'extension.
Types d'injection de dépendance
**Les services enregistrés sont fournis à une classe par l'intermédiaire de son constructeur, ce qui est la forme la plus courante et la plus recommandée de l'injection de constructeur.
Injection de méthode: Les services sont résolus et transmis en tant que paramètres à une méthode. Injection de propriété : Les services singleton ou les services à durée de vie limitée sont affectés à la classe.
**Injection de propriétés : les services singleton ou les services à durée de vie limitée peuvent être assignés aux propriétés de la classe. Cependant, cette approche est moins courante et souvent considérée comme inférieure à l'injection de constructeur car elle peut introduire des dépendances cachées.
Comprendre les durées de vie dans l'injection de dépendance (DI) : Scoped, Transient et Singleton
**Les dépendances sont créées une fois par requête ou par durée de vie, ce qui signifie que le conteneur fournit la même instance au cours d'une seule requête ou opération. Cette cohérence est particulièrement utile dans les applications web, où les dépendances scopées permettent de maintenir une dépendance stable tout au long d'une requête web.
**Les dépendances transitoires sont instanciées à chaque fois qu'elles sont demandées au conteneur. Cela signifie qu'une nouvelle instance d'une dépendance transitoire est générée chaque fois qu'elle est nécessaire. En règle générale, les dépendances transitoires sont utilisées pour des services ou des composants légers et sans état.
**Les dépendances singleton sont instanciées une seule fois et partagées pendant toute 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 demandes pendant toute la durée de vie de l'application. Les dépendances singleton sont généralement utilisées pour les services ou les composants avec état qui doivent être universellement accessibles dans l'ensemble de l'application.
Installation du paquet Microsoft.Extensions.DependencyInjection
Pour commencer à utiliser l'injection de dépendances dans un projet .NET Core, vous devez d'abord installer l'extensionPaquet Microsoft.Extensions.DependencyInjection. Cela peut se faire via la console NuGet Package Manager dans Visual Studio avec le code suivant :
IRON VB CONVERTER ERROR developers@ironsoftware.com
Capture d'écran
Exemple : Injection de dépendance de base
Dans cet exemple, nous allons créer un exemple d'application(application de la console) dans lequel nous utiliserons un fournisseur de services pour résoudre les services et les injecter dans notre programme.
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
L'extrait de code crée une règle d'envoi de messages appelée IMessageService. C'est comme si l'on établissait un plan pour l'envoi des messages. Ensuite, la classe ConsoleMessageService doit suivre cette règle en utilisant Console.WriteLine pour envoyer les messages. Cette configuration sépare l'idée d'envoyer des messages du processus proprement dit, ce qui permet de modifier plus facilement la manière dont les messages sont envoyés ultérieurement, si nécessaire. Il permet de maintenir le système de messagerie organisé et facile à gérer dans l'application.
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
Ce code met en place un fournisseur de services pour gérer les outils. Il y ajoute un outil ConsoleMessageService. Ensuite, il récupère l'outil IMessageService de serviceProvider et l'utilise pour envoyer le message "Hello, Dependency Injection"!"à la console.
Sortie : Le programme imprime le message "Hello, From Dependency Injection"!"
IronPDF : C&num ; Bibliothèque PDF
IronPDF est une puissante bibliothèque pour C# qui simplifie le processus complexe de génération de PDF, offrant une large gamme de fonctionnalités pour la manipulation des PDF, y compris la possibilité de générer desPDF à partir de HTML, l'opération consistant à ajouterdu texte aux PDF etédition de PDF avec des images, la création de documents sécurisés, et bien d'autres choses encore.
Utilisation d'IronPDF avec l'injection de dépendances
Pour intégrer la bibliothèque IronPDF dans une application .NET Core exploitant les fonctionnalités d'injection de dépendances et les méthodes d'extension avec Microsoft.Extensions.DependencyInjection, vous pouvez procéder comme suit :
Créez une interface pour définir votre service de génération de PDF.
Mettre en œuvre l'interface.
Utiliser les méthodes d'extension pour enregistrer le service dans le conteneur d'injection de dépendances.
Injectez le service dans votre application si nécessaire.
Définir l'interface
Créez une interface pour définir votre service de génération de PDF.
IRON VB CONVERTER ERROR developers@ironsoftware.com
Cette configuration résout les dépendances en mettant en œuvre l'interface IPdfService avec IronPdfService, établissant un type de service unique pour la génération de PDF. Il est ensuite référencé dans l'ensemble de l'application, ce qui garantit 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";
_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
Cette configuration garantit que le service IronPdfService est créé et géré par le conteneur d'injection de dépendances Microsoft Extensions. Vous pouvez facilement remplacer le service de génération de PDF par défaut en proposant une implémentation alternative de l'interface IPdfService, sans modifier le code de consommation.
Capture d'écran du fichier PDF
Conclusion
Microsoft.Extensions.DependencyInjection est un outil puissant dans .NET 6 pour mettre en œuvre l'injection de dépendances, qui favorise le couplage lâche et améliore la testabilité des applications. En intégrant IronPDF, une bibliothèque C# riche en fonctionnalités, les développeurs peuvent facilement générer des documents PDF complets avec un minimum d'efforts. Licence pour IronPDF est disponible.
Avant de devenir ingénieur logiciel, Kannapat a obtenu un doctorat en ressources environnementales à l'université d'Hokkaido au Japon. Tout en poursuivant ses études, Kannapat est également devenu membre du Vehicle Robotics Laboratory, qui fait partie du Department of Bioproduction Engineering (département d'ingénierie de la bioproduction). En 2022, il a mis à profit ses compétences en C# pour rejoindre l'équipe d'ingénieurs d'Iron Software, où il se concentre sur IronPDF. Kannapat apprécie son travail car il apprend directement auprès du développeur qui écrit la majeure partie du code utilisé dans IronPDF. Outre l'apprentissage par les pairs, Kannapat apprécie l'aspect social du travail chez Iron Software. Lorsqu'il n'écrit pas de code ou de documentation, Kannapat peut généralement être trouvé en train de jouer sur sa PS5 ou de revoir The Last of Us.
< PRÉCÉDENT Junit Java (Comment cela fonctionne pour les développeurs)
SUIVANT > Ninject .NET Core (Comment ça marche pour les développeurs)
Des millions d'ingénieurs dans le monde entier lui font confiance
Réservez une démo en direct gratuite
Réservez une démonstration personnelle de 30 minutes.
Pas de contrat, pas de détails de carte, pas d'engagements.
Voici ce à quoi vous pouvez vous attendre :
Une démonstration en direct de notre produit et de ses principales fonctionnalités
Obtenez des recommandations de fonctionnalités spécifiques au projet
Toutes vos questions trouvent réponse pour vous assurer de disposer de toutes les informations dont vous avez besoin. (Aucun engagement de votre part.)
CHOISIR L'HEURE
VOS INFORMATIONS
Réservez votre démo en direct gratuite
Fiable par plus de 2 millions d'ingénieurs dans le monde entier