Skip to content

Migración y superficie pública ​

Índice · Flujo

Cambios observables ​

Las incorporaciones de uso cotidiano son aditivas: FieldSequence equivale a Field con Sequence; las sobrecargas sin mensaje usan textos españoles; result.GetDiagnostics() y result.ForField(...) permiten consultar también resultados satisfactorios; error.ToResult() conserva el error existente. Consulta uso cotidiano para las firmas y ejemplos.

SituaciónComportamiento actualMigración
Validate con reglas asíncronas en el conjunto seleccionadoLanza InvalidOperationExceptionUsar ValidateAsync
Reglas mixtas en ValidateAsyncOrden de registroDeclarar dependencias con un plan; revisar dependencias accidentales del orden anterior
Conjunto nombrado inexistente o vacíoLanza ArgumentExceptionCorregir el nombre; null selecciona el conjunto predeterminado
Consultar todas las reglasRegistrations incluye síncronas, asíncronas y conjuntosMantener Rules solo para inspección síncrona
Cancelación durante la última reglaSe detecta antes de devolver resultadoGestionar cancelación como interrupción
Aritmética con default(Money)Error de moneda requeridaConstruir mediante Money.Create
Edad de default(BirthDate)Excepción de valor sin inicializarComprobar IsInitialized
Plan local asíncrono en WithRulesSe adapta automáticamenteEjecutar ValidateAsync; invariantes siguen siendo síncronas
Segundo ModelValidator.WithRulesAñade otro plan independienteUsar Sequence para dependencias
Política de objeto de valorDomainValidationRule.FromFactoryValidar con la fábrica; construir explícitamente el valor normalizado
Opciones de recorridoSobrecargas con RuleEvaluationOptionsUsar argumentos nombrados si se combina con conjunto o token
Mensajes por campoerror.ForField(path, DiagnosticView)Importar Greencore.Domain.Entity.Validators.Diagnostics

Los conjuntos nombrados seleccionan exclusivamente sus reglas; no incluyen automáticamente el conjunto predeterminado. Un conjunto sin registros no queda registrado por llamar a un callback vacío.

Composición y mutabilidad ​

EntityValidator y BusinessValidator conservan configuración inmutable: sus métodos With... devuelven otra instancia y debe conservarse el retorno. ValidationBuilder e InvariantBuilder son builders mutables. Las entradas por callback permiten configurar sin reasignaciones dentro del builder.

WithProperty(... Required(...)) conserva su protección de las reglas restantes de la propiedad. En el builder común, expresa esa protección mediante Sequence(s => s.Required(...).Email(...)). Registrar presencia y formato como ramas independientes no crea una dependencia.

Los prerrequisitos de BusinessValidator se ejecutan globalmente antes de las reglas ordinarias. Una secuencia de plataforma protege únicamente su composición. Conserva esta distinción al migrar una política de negocio.

Contratos cotidianos y avanzados ​

GrupoContratosDecisión
CotidianoFábricas de valores, EntityValidator, ModelValidator<T, C>, BusinessValidator, InvariantsEntradas recomendadas
ComposiciónValidationBuilder, ValidationPlanReutilización común
ExtensiónIInvariant, IEntityValidationRule, IAsyncEntityValidationRule, especificaciones y razones tipadasMantener para integraciones
InspecciónRegistrations, GetDomainDiagnosticsInventario completo y lectura común
Caminos conservadosWithProperty, ModelValidator<TEntity>, TreeModelValidation, construcción explícita de árbolesMantener sin cambiar semántica incidental

No se añade otra familia de errores. GetDomainDiagnostics conserva la lectura de hojas; ForField incorpora selección de campo y vistas. La selección se hace por la responsabilidad de la operación, no por el número de tipos disponibles.

Uso personal limitado. Uso comercial sujeto a autorización escrita.