"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo puedo resolver manualmente los servicios de ASP.NET Core en 'Configurservices'?

¿Cómo puedo resolver manualmente los servicios de ASP.NET Core en 'Configurservices'?

Publicado el 2025-03-22
Navegar:139

How Can I Manually Resolve ASP.NET Core Services in `ConfigureServices`?

analizar manualmente ASP.NET Core Service en configureServices El método

configureServices

en ASP.NET Core utilizado para configurar los contenedores de inyección de dependencia no proporciona un método para analizar directamente los servicios. Para analizar manualmente el servicio de este método, se requiere un método alternativo.

Modo de proveedor de servicios

Para analizar los servicios, ASP.NET Core utiliza el patrón del proveedor de servicios. Después de construir la colección de servicios, se convierte en una instancia

iserviceProvider , permitiendo que el servicio se analice.

Provider del servicio de inyección ] Una forma de analizar un servicio es inyectar la instancia

iserviceProvider

en el constructor de la clase startup . Sin embargo, este enfoque solo proporciona acceso a los servicios necesarios limitados inyectados por la capa de alojamiento.

use ApplicationServices

] en el método

configure

, la propiedad iapplicationBuilder proporciona la propiedad aplicationservices , que contiene un proveedor de servicios que puede acceder a todos los servicios registrados.

public void configure (aplicación iapplicationBuilder) { var serviceProvider = app.applicationservices; var fooservice = ServiceProvider.getService (); }
public void Configure(IApplicationBuilder app)
{
    var serviceProvider = app.ApplicationServices;
    var fooService = serviceProvider.GetService();
}
construir un proveedor de servicios intermedios

]] Para analizar un servicio en el método

configureServices

, puede crear un proveedor de servicios intermedios a partir de una colección de servicios parcialmente construida. Sin embargo, esto solo incluye servicios registrados antes de esto.

public void configureServices (servicios de iserviceCollection) { Services.addsingleton (); var sp = Services.BuildServiceProvider (); var fooservice = sp.getService (); }
public void Configure(IApplicationBuilder app)
{
    var serviceProvider = app.ApplicationServices;
    var fooService = serviceProvider.GetService();
}
Evite el análisis manual

] Los servicios de análisis manuales generalmente no se recomiendan porque viola el principio de inyección de dependencia. En su lugar, use la inyección o utilice la inyección del proveedor de servicios en el método

configure

.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3