Je comprends que cela IValidatableObject
sert à valider un objet d'une manière qui permet de comparer les propriétés les unes par rapport aux autres.
J'aimerais toujours avoir des attributs pour valider les propriétés individuelles, mais je veux ignorer les échecs sur certaines propriétés dans certains cas.
Est-ce que j'essaye de ne pas l'utiliser correctement dans le cas ci-dessous? Sinon, comment puis-je mettre en œuvre cela?
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.
*/
}
}
}