analizar manualmente ASP.NET Core Service en configureServices
El método
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.
] 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(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 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.
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