English | Español
El framework BeyondNet.Aop está dividido en paquetes modulares de NuGet. Esto permite a los consumidores seleccionar exactamente lo que necesitan sin incluir dependencias innecesarias.
El núcleo absoluto del framework. Contiene las abstracciones e interfaces base necesarias para construir y definir un entorno AOP.
Tipos clave:
IAspect: La interfaz fundamental de un aspecto.IJoinPoint: Objeto de contexto para las intercepciones.AbstractAspect<T>: La clase base genérica de la cual debes heredar para construir tus aspectos personalizados.IPointCut&PointCut: Evaluador por defecto para hacer coincidir los aspectos con los métodos destino.
La implementación nativa del proxy de .NET. Depende de BeyondNet.Aop y usa System.Reflection.DispatchProxy para emitir los proxies en tiempo de ejecución.
Tipos clave:
AopProxy<TService, TImplementation>: Emite el objeto proxy dinámico que rutea las llamadas al Ejecutor de Aspectos.AspectExecutor: Administra la cadena de responsabilidad para ejecutar múltiples aspectos aplicados al mismo método.
Una librería estándar de lógicas transversales pre-construidas que la mayoría de aplicaciones necesitan.
Aspectos clave incluidos:
LoggerAspect: Envuelve las llamadas a métodos con comportamientos de logOnEntry,OnExit, yOnException.RetryAspect: Reintenta automáticamente la ejecución de un método si se lanzan ciertas excepciones, basándose en un número máximo de intentos definidos.AdviceAspect: Un aspecto envoltorio genérico que puede inyectar implementaciones arbitrarias deIAdvice.Evaluator: Un evaluador dinámico de expresiones de texto usandoSystem.Linq.Dynamic.Core.
Un paquete adaptador que implementa la interfaz ILogger del framework utilizando la popular librería de logs estructurados Serilog.
Un paquete adaptador que implementa la interfaz ILogger del framework utilizando Common.Logging.
Provee métodos de extensión de integración para IServiceCollection. Te permite registrar tus servicios y hacer que el motor de proxies AOP los envuelva automáticamente durante la fase de resolución nativa de Inyección de Dependencias de .NET.