Entendo que IValidatableObject
é usado para validar um objeto de uma maneira que permita comparar propriedades entre si.
Ainda gostaria de ter atributos para validar propriedades individuais, mas quero ignorar falhas em algumas propriedades em certos casos.
Estou tentando usá-lo incorretamente no caso abaixo? Se não, como faço para implementar isso?
public class ValidateMe : IValidatableObject
{
[Required]
public bool Enable { get; set; }
[Range(1, 5)]
public int Prop1 { get; set; }
[Range(1, 5)]
public int Prop2 { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (!this.Enable)
{
/* Return valid result here.
* I don't care if Prop1 and Prop2 are out of range
* if the whole object is not "enabled"
*/
}
else
{
/* Check if Prop1 and Prop2 meet their range requirements here
* and return accordingly.
*/
}
}
}