Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
Microsoft.Extensions.DependencyInjection es una potente biblioteca proporcionada por Microsoft .NET para facilitar la Inyección de Dependencias(DI)un patrón de diseño de software que fomenta el acoplamiento flexible y mejora la comprobabilidad de las aplicaciones. La DI se aplica a menudo mediante.NET Core contenedor DI integrado o bibliotecas como Autofac y Unity. DI implica inyectar dependencias(objetos que necesita una clase) 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 propiedad.
Registro de servicios: Las dependencias se registran en un contenedor DI, normalmente en la raíz de composición de la aplicación. Estos registros especifican cómo el contenedor debe crear y gestionar las dependencias.
Scoped: Las dependencias Scoped se crean una vez por solicitud o ámbito de vida, lo que significa que el contenedor proporciona la misma instancia dentro de una única solicitud u operación. Esta consistencia es particularmente útil en aplicaciones web, donde las dependencias de ámbito ayudan a mantener una dependencia estable a lo largo de una petición web.
Transitorias: Las dependencias transitorias se instancian cada vez que se solicitan al contenedor. Esto implica que se genera una nueva instancia de una dependencia transitoria cada vez que se necesita. Normalmente, las dependencias transitorias se utilizan para servicios o componentes ligeros y sin estado.
Para empezar a utilizar la inyección de dependencias en un proyecto .NET Core, primero hay que instalar la aplicaciónPaquete Microsoft.Extensions.DependencyInjection. Esto se puede hacer a través de la NuGet Package Manager Console en Visual Studio con el siguiente código:
Install-Package Microsoft.Extensions.DependencyInjection
Install-Package Microsoft.Extensions.DependencyInjection
IRON VB CONVERTER ERROR developers@ironsoftware.com
En este ejemplo, vamos a crear una aplicación de ejemplo(aplicación de consola) en el que utilizaremos un proveedor de servicios para resolver servicios e inyectarlos en nuestro programa.
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
El fragmento de código crea una regla para el envío de mensajes llamada IMessageService. Es como establecer un plan sobre cómo deben enviarse los mensajes. Entonces, se hace que la clase ConsoleMessageService siga esta regla usando Console.WriteLine para enviar mensajes. Esta configuración separa la idea de enviar mensajes del proceso real, lo que facilita cambiar cómo se envían los mensajes más adelante si es necesario. Ayuda a mantener el sistema de mensajería organizado y fácil de gestionar en la aplicación.
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
Este código configura un serviceProvider para gestionar herramientas. Le añade una herramienta ConsoleMessageService. A continuación, recupera la herramienta IMessageService de serviceProvider y la utiliza para enviar el mensaje "Hola, Inyección de Dependencia!" a la consola.
Salida: El programa imprime el mensaje de cadena "Hola, de inyección de dependencia!"
IronPDF es una potente biblioteca para C# que simplifica el complejo proceso de generación de PDF, ofreciendo una amplia gama de funciones para la manipulación de PDF, incluida la capacidad de generarPDF a partir de HTMLla operación de sumartexto a PDF yedición de PDF con imágenescrear documentos seguros y mucho más.
Para integrar la biblioteca IronPDF en una aplicación .NET Core aprovechando las características de inyección de dependencias y los métodos de extensión con Microsoft.Extensions.DependencyInjection, puede proceder de la siguiente manera:
Cree una interfaz para definir su servicio de generación de PDF.
Implementa la interfaz.
Utilizar métodos de extensión para registrar el servicio en el contenedor de inyección de dependencias.
Cree una interfaz para definir su servicio de generación de PDF.
public interface IPdfService
{
void GeneratePdf(string baseUrl, string query, string filePath);
}
public interface IPdfService
{
void GeneratePdf(string baseUrl, string query, string filePath);
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
Implemente la interfaz utilizando IronPDF para crear el archivo PDF.
public class IronPdfService : IPdfService
{
public void GeneratePdf(string baseUrl, string query, string filePath)
{
License.LicenseKey = "Your-License-Key";
string encodedQuery = HttpUtility.UrlEncode(query);
string fullUrl = $"{baseUrl}?query={encodedQuery}";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf(fullUrl);
pdf.SaveAs(filePath);
Console.WriteLine($"PDF successfully created from: {fullUrl}");
Console.WriteLine($"Saved to: {filePath}");
}
}
public class IronPdfService : IPdfService
{
public void GeneratePdf(string baseUrl, string query, string filePath)
{
License.LicenseKey = "Your-License-Key";
string encodedQuery = HttpUtility.UrlEncode(query);
string fullUrl = $"{baseUrl}?query={encodedQuery}";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf(fullUrl);
pdf.SaveAs(filePath);
Console.WriteLine($"PDF successfully created from: {fullUrl}");
Console.WriteLine($"Saved to: {filePath}");
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
En su clase Program.cs, configure la inyección de dependencias:
builder.Services.AddSingleton<IPdfService, IronPdfService>();
builder.Services.AddSingleton<IPdfService, IronPdfService>();
IRON VB CONVERTER ERROR developers@ironsoftware.com
Esta configuración resuelve las dependencias implementando la interfaz IPdfService con IronPdfService, estableciendo un tipo de servicio singleton para la generación de PDF. A continuación, se hace referencia a él en toda la aplicación, lo que garantiza una funcionalidad coherente para generar archivos PDF.
Inyecta IPdfService en tu controlador o servicio y utilízalo:
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
Esta configuración garantiza que IronPdfService sea creado y gestionado por el contenedor Microsoft Extensions Dependency Injection. Puede sustituir sin esfuerzo el servicio de generación de PDF predeterminado ofreciendo una implementación alternativa para la interfaz IPdfService, todo ello sin alterar el código de consumo.
Microsoft.Extensions.DependencyInjection es una potente herramienta de .NET 6 para implementar la inyección de dependencias, que fomenta el acoplamiento flexible y mejora la comprobabilidad de las aplicaciones. Mediante la integración de IronPDF, una biblioteca de C# repleta de funciones, los desarrolladores pueden generar fácilmente documentos PDF completos con el mínimo esfuerzo. Licencias para IronPDF está disponible.
9 productos API .NET para sus documentos de oficina