$mermaidjs
Clean Architecture Demo
Loading...
Searching...
No Matches
TaskManagement.Application.Behaviors.ValidationBehavior< TRequest, TResponse > Class Template Referencesealed

ValidationBehavior es un comportamiento de pipeline de MediatR para validar comandos y consultas. More...

Inheritance diagram for TaskManagement.Application.Behaviors.ValidationBehavior< TRequest, TResponse >:
Collaboration diagram for TaskManagement.Application.Behaviors.ValidationBehavior< TRequest, TResponse >:

Public Member Functions

 ValidationBehavior (IEnumerable< IValidator< TRequest > > validators)
 
async Task< TResponse > Handle (TRequest request, RequestHandlerDelegate< TResponse > next, CancellationToken cancellationToken)
 

Detailed Description

ValidationBehavior es un comportamiento de pipeline de MediatR para validar comandos y consultas.

Rol en Clean Architecture:

  • Parte de la capa de aplicación
  • Comportamiento de pipeline: Intercepta todas las solicitudes de MediatR antes de que se ejecuten los manejadores
  • Valida entradas utilizando el FluentValidation

Patrón de pipeline de MediatR:

  • Los comportamientos envuelven el manejo de solicitudes como middleware en ASP.NET Core
  • El orden de registro determina el orden de ejecución
  • Puede manejar validación, registro, monitoreo de rendimiento, caché, etc.
  • Permite separación de preocupaciones transversales de la lógica de negocio

Responsabilidades del comportamiento de validación:

  • Ejecuta todos los validadores registrados para el comando/consulta específicos
  • Agrega errores de validación de todos los validadores
  • Devuelve Failure con errores recopilados si la validación falla
  • Permite que el manejador se ejecute si la validación tiene éxito

Beneficios:

  • Lógica de validación centralizada -no dispersa en manejadores-
  • Enfoque de validación consistente en todos los comandos
  • Los validadores son reutilizables y componibles
  • Separación de reglas de validación de la lógica de negocio
  • Fácil agregar o modificar validación sin tocar manejadores

Integración con FluentValidation:

  • Validadores registrados por tipo de comando/consulta
  • API fluida para reglas de validación legibles
  • Encadenamiento de reglas de validación para escenarios complejos
  • Soporta reglas de validación personalizadas y validadores asíncronos
Type Constraints
TRequest :IRequest<TResponse> 
TResponse :Result 

Definition at line 60 of file ValidationBehavior.cs.

Constructor & Destructor Documentation

◆ ValidationBehavior()

TaskManagement.Application.Behaviors.ValidationBehavior< TRequest, TResponse >.ValidationBehavior ( IEnumerable< IValidator< TRequest > >  validators)

Definition at line 66 of file ValidationBehavior.cs.

Member Function Documentation

◆ Handle()

async Task< TResponse > TaskManagement.Application.Behaviors.ValidationBehavior< TRequest, TResponse >.Handle ( TRequest  request,
RequestHandlerDelegate< TResponse >  next,
CancellationToken  cancellationToken 
)

Definition at line 71 of file ValidationBehavior.cs.


The documentation for this class was generated from the following file: