custom がValidationAttribute
ありますが、CheckBox がチェックされている場合にのみ、このプロパティを検証したいと考えています。
クラスを から継承しIValidationObject
、そのValidate
メソッドを使用してカスタム検証を実行していますがValidationAttribute
、コードを複製する代わりにここでカスタムを使用できますか? もしそうなら、どのように?
public class MyClass : IValidatableObject
{
public bool IsReminderChecked { get; set; }
public bool EmailAddress { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (IsReminderChecked)
{
// How can I validate the EmailAddress field using
// the Custom Validation Attribute found below?
}
}
}
// Custom Validation Attribute - used in more than one place
public class EmailValidationAttribute : ValidationAttribute
{
public override bool IsValid(object value)
{
var email = value as string;
if (string.IsNullOrEmpty(email))
return false;
try
{
var testEmail = new MailAddress(email).Address;
}
catch (FormatException)
{
return false;
}
return true;
}
}