I have a web api with some nested models that are being bound like so:
public class Class1 {
//This data is needed in Class2 and Class3 validation
public bool ImportantInformation {get; set;}
public Class2 A {get; set;}
public Class3 B {get; set;}
}
public class Class2 {
[ConditionallyValidatedAttribute]
public string X {get; set;}
}
public class Class3 {
[ConditionallyValidatedAttribute]
public string Y {get; set;}
}
ConditionallyValidatedAttribute
looks like this:
public sealed class ConditionallyValidatedAttribute : ValidationAttribute {
protected override ValidationResult IsValid(object value, ValidationContext vc) {
bool importantInformation = //How do I get Class1.ImportantInformation?
if(importantImformation && value == null) {
return new ValidationResult($"{vc.MemberName} is invalid");
}
return ValidationResult.Success;
}
}
My question is is there some way to inject ImportantInformation
into ConditionallyValidatedAttribute
as needed?