IRONSOFTWAREHOME
ACTUALIZACIONES PARA DESARROLLADORES

Microsoft.Extensions.DependencyInjection .NET 9 (Trabajando con PDF)

Jacob Mellor, Director de Tecnología @ Team Iron
Jacob Mellor
Updated: 21 de abril de 2026

Microsoft.Extensions.DependencyInjection es una potente biblioteca proporcionada por Microsoft .NET para facilitar la Inversión de Dependencias (DI), un patrón de diseño de software que promueve el acoplamiento flexible y mejora la testabilidad en las aplicaciones. DI a menudo se implementa utilizando el contenedor DI incorporado en .NET Core o bibliotecas como Autofac y Unity. DI implica inyectar dependencias (objetos que una clase necesita) en una clase en lugar de que la clase cree sus dependencias. Esto se hace típicamente a través de un constructor, método o inyección de propiedades.

Microsoft.Extensions.DependencyInjection .NET 6 (Trabajo con PDF): Figura 1 - Documentación Name de Microsoft.Extensions.DependencyInjection

Contenedor de inyección de dependencias

  1. Registro de Servicios: Las dependencias se registran en un contenedor DI, típicamente en la raíz de composición de la aplicación. Estos registros especifican cómo el contenedor debe crear y gestionar las dependencias.

  2. Resolución de Dependencias: Cuando un componente solicita una dependencia, el contenedor DI resuelve la dependencia creando una instancia de un tipo registrado que utiliza un método de extensión.

Tipos de inyección de dependencia

  • Inyección de Constructor: Los servicios registrados se proporcionan a una clase a través de su constructor, que es la forma más común y recomendada de DI.
  • Inyección de Método: Los servicios se resuelven y pasan como parámetros a un método.
  • Inyección de Propiedades: Los servicios singleton o servicios con un tiempo de vida limitado pueden asignarse a las propiedades de una clase. Sin embargo, este enfoque es menos común y a menudo se considera inferior a la inyección de constructor porque puede introducir dependencias ocultas.

Comprensión de los tiempos de vida en la inyección de dependencia (DI): Scoped, Transient, and Singleton

  1. Limitado: Las dependencias limitadas se crean una vez por solicitud o ámbito de vida, lo que significa que el contenedor proporciona la misma instancia dentro de una sola solicitud u operación. Esta consistencia es particularmente útil en aplicaciones web, donde las dependencias limitadas ayudan a mantener una dependencia estable a lo largo de una solicitud web.
  2. Transitorio: Las dependencias transitorias se instancian cada vez que se solicitan desde el contenedor. Esto implica que se genera una nueva instancia de una dependencia transitoria cada vez que se necesita. Típicamente, las dependencias transitorias se usan para servicios livianos, sin estado o componentes.
  3. Singleton: Las dependencias singleton se instancian solo una vez y se comparten a lo largo de toda la vida de la aplicación. Esto asegura que se use la misma instancia de una dependencia singleton para todas las solicitudes a lo largo de la duración de la aplicación. Las dependencias singleton se emplean típicamente para servicios con estado o componentes que necesitan ser accesibles de manera universal en toda la aplicación.

Instalación del paquete Microsoft.Extensions.DependencyInjection

Para comenzar a usar la inyección de dependencias en un proyecto .NET Core, primero debe instalar el paquete Microsoft.Extensions.DependencyInjection. Esto se puede hacer a través de la Consola del Administrador de Paquetes NuGet en Visual Studio con el siguiente comando:

PM > Install-Package Microsoft.Extensions.DependencyInjection

Captura de pantalla

Microsoft.Extensions.DependencyInjection .NET 6 (Trabajo con PDF): Figura 2 - Escriba el comando en la terminal para instalar el paquete

Ejemplo: Inyección de dependencia básica

En este ejemplo, vamos a crear una aplicación de muestra (aplicación de consola) en la que utilizaremos un proveedor de servicios para resolver servicios e inyectarlos en nuestro programa.

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

El fragmento de código crea una interfaz IMessageService para enviar mensajes, como un contrato sobre cómo deben enviarse los mensajes. La clase ConsoleMessageService implementa esta interfaz utilizando Console.WriteLine para enviar mensajes. Esta separación permite que el concepto de enviar mensajes se cambie independientemente de cómo se envían, haciendo que el sistema sea flexible y manejable.

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

Este código configura un serviceProvider para gestionar los servicios. Registra ConsoleMessageService como la implementación para IMessageService, haciéndolo disponible para ser inyectado donde sea necesario. El método Main luego obtiene una instancia de IMessageService del serviceProvider y la utiliza para enviar un mensaje a la consola.

Salida: El programa imprime el mensaje de cadena "¡Hola, desde la Inversión de Dependencias!"

Microsoft.Extensions.DependencyInjection .NET 6 (Trabajo con PDF): Figura 3 - Salida de consola del código anterior

IronPDF: Biblioteca PDF de C#

IronPDF es una potente biblioteca para C# que simplifica el complejo proceso de generación de PDF, ofreciendo una amplia gama de características para la manipulación de PDF, incluyendo la capacidad de generar PDFs desde HTML, operar agregando texto a PDFs y editar PDFs con imágenes, crear documentos seguros, y mucho más.

Microsoft.Extensions.DependencyInjection .NET 6 (Trabajo con PDF): Figura 4 - Ejemplo de Microsoft.Extensions.DependencyInjection en C# (Cómo funciona para desarrolladores): Figura 2 - IronPDF

Uso de IronPDF con inyección de dependencias

Para integrar la biblioteca IronPDF en una aplicación .NET Core aprovechando las características de la inyección de dependencias y los métodos de extensión con Microsoft.Extensions.DependencyInjection, puede proceder de la siguiente manera:

  1. Crear una interfaz para definir su servicio de generación de PDF.
  2. Implementar la interfaz.
  3. Utilizar métodos de extensión para registrar el servicio en el contenedor de inversión de dependencias.
  4. Inyectar el servicio en su aplicación según sea necesario.

Definir interfaz

Crear una interfaz para definir su servicio de generación de PDF.

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

Interfaz de implementación

Implementar la interfaz usando IronPDF para crear el archivo 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}");
    }
}

Registrar servicio

En su clase Program.cs, configure la inyección de dependencias:

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

Esta configuración resuelve las dependencias implementando la interfaz IPdfService con IronPDFService, estableciendo un tipo de servicio singleton para la generación de PDF. Luego se referencia a lo largo de la aplicación, asegurando una funcionalidad consistente para la generación de PDFs.

Uso

Inyectar IPdfService en su controlador o servicio y usarlo:

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

Esta configuración asegura que el IronPDFService sea creado y gestionado por el contenedor Microsoft Extensions Dependency Injection. Puede sustituir sin dificultad el servicio de generación de PDF predeterminado ofreciendo una implementación alternativa para la interfaz IPdfService, todo sin alterar el código que lo consume.

Captura de pantalla del archivo PDF

Microsoft.Extensions.DependencyInjection .NET 6 (Trabajo con PDF): Figura 5 - Ejemplo de salida usando el contenedor de inyección de dependencias de Microsoft Extensions en conjunción con IronPDF

Conclusión

Microsoft.Extensions.DependencyInjection es una herramienta poderosa en .NET 6 para implementar la inyección de dependencias, que promueve el acoplamiento flexible y mejora la testabilidad en las aplicaciones. Al integrar IronPDF, una biblioteca de C# rica en características, los desarrolladores pueden generar fácilmente documentos PDF integrales con un esfuerzo mínimo. La licencia para IronPDF está disponible.

Jacob Mellor, Director de Tecnología @ Team Iron
Director de Tecnología

Jacob Mellor es Director de Tecnología de Iron Software y un ingeniero visionario pionero en la tecnología C# PDF. Como desarrollador original de la base de código principal de Iron Software, ha dado forma a la arquitectura de productos de la empresa desde su creación, transformándola, junto con el director ejecutivo Cameron Rimington, en una empresa de más de 50 personas que presta servicios a la NASA, Tesla y organismos gubernamentales de todo el mundo.

...
Leer más

Artículos Relacionados

Key in blue circle

Obtenga su clave de prueba gratuita de 30 días al instante.

Your trial license will be sent to your email address

Sin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.

OR
bullet_checkedNo se requiere tarjeta de crédito ni creación de cuentaSin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
Reserve su Demostración en Vivo gratuita
Booking Badge

Confiado por millones de ingenieros en todo el mundo

Logos de clientes de Iron Software
Obtén tu Consulta Sin Compromiso
Completa el formulario a continuación o envía un correo a sales@ironsoftware.com
Tus detalles siempre serán mantenidos confidenciales.
Confiado por millones de ingenieros en todo el mundo
Logos de clientes de Iron Software
Obtenga su Clave de Prueba de 30 días gratis al instante.
No se requiere tarjeta de crédito ni creación de cuenta
Biblioteca C# NuGet para PDF
Instalar con NuGet

Versión: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. En el Explorador de Soluciones, haga clic derecho en Referencias, Administrar Paquetes NuGet
  2. Seleccione Examinar y busque "IronPDF"
  3. Seleccione el paquete e instale
C# PDF DLL
Descargar DLL

Versión: 2026.9

o descargue el Instalador de Windows aquí.

  1. Descargue y descomprima IronPDF en una ubicación como ~/Libs dentro del directorio de su solución
  2. En el Explorador de Soluciones de Visual Studio, haga clic derecho en Referencias. Seleccione Examinar, "IronPDF.dll"

Licencias desde $999