Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 413|Respuesta: 0

[Consejos] .NET/C# herramienta de registro de servicio de inyección de dependencias Scrutor

[Copiar enlace]
Publicado el 4-9-2025 09:37:00 | | |
Requisitos: Cuando el proyecto es relativamente grande y la sintaxis de escritura está muy estandarizada, al añadir una interfaz, necesitamos añadirla manualmente en el contenedor IServiceCollection, para que la interfaz pueda ser inyectada en el constructor. La herramienta Scrutor es muy cómoda para nosotros para añadir automáticamente según nuestra configuración de reglas.

Scrutor

Microsoft.Extensions.DependencyInjection para escanear ensambladores y decorar extensiones.

Dirección del código fuente:El inicio de sesión del hipervínculo es visible.

revisión

Mirando hacia atrás en la matrícula del servicio, las tres formas de inyección singleton son las siguientes:

Registro de servicio

Supongamos que tienes una estructura de código así:

Definiciones de interfaces
interface public IUserService { }
interface pública IOrderService { }

Clase de implementación
clase pública UserService : IUserService { }
clase pública OrderService : IOrderService { }

antes

Se requiere registro uno por uno, y el código es el siguiente:

O escribe tu propio método y regístralo mediante la reflexión :(De hecho, Scrutor también es a través de la reflexión), de la siguiente manera:

después

Scrutor facilita mucho el escaneo de ensambladores de registros, especialmente para registrar automáticamente múltiples clases de servicio (por ejemplo, UserService registrado como IUserService). Las dependencias de los paquetes son las siguientes:

El código es el siguiente:

Interpretación:
  • . <UserService>FromAssemblyOf(): Especifica el ensamblador a escanear.
  • . AddClasses(): Escanea todas las clases del conjunto de ensamblaje.
  • . AsImplementedInterfaces(): Registra automáticamente las interfaces para estas clases a medida que se implementan.
  • . WithScopedLifetime(): Establece el tiempo de vida en Scoped, que también puede ser WithTransientLifetime() o WithSingletonLifetime().

(Fin)




Anterior:.NET/C# convierte PDFs en imágenes basadas en ImageMagick, GhostScript
Próximo:Alibaba Cloud monta OSS en el directorio del sistema Linux
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com