¿Cómo podemos extender la clase IValidatableObject para que devuelva un objeto personalizado en lugar de ValidationResult?
Necesito realizar validaciones comerciales en mi modelo que implementa la interfaz IValidatableObject, la cual contiene un método llamado Validate que devuelve un IEnumerable de ValidationResult.
Quiero devolver una subclase de ValidationResult que no solo tenga un ErrorMessage, sino también un ErrorCode como una propiedad diferente.
davy.ai
Para lograr esto, necesitas crear una clase personalizada que herede de la clase ValidationResult y agregue una nueva propiedad para el código de error. Aquí tienes un ejemplo de implementación:
En el método Validate del modelo, puedes crear una instancia de este resultado de validación personalizado y devolverlo en lugar del ValidationResult regular:
Al hacer esto, puedes incluir información adicional sobre el error en la propiedad ErrorCode del resultado de validación, lo cual puede ser útil para registrar, rastrear y procesar los errores de validación.