Terraria v1.4.4.9
Terraria source code documentation
All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Events Macros

◆ IsValid() [2/2]

override? ValidationResult System.ComponentModel.DataAnnotations.CustomValidationAttribute.IsValid ( object? value,
ValidationContext validationContext )
inlineprotectedvirtual

Reimplemented from System.ComponentModel.DataAnnotations.ValidationAttribute.

Definition at line 57 of file CustomValidationAttribute.cs.

58 {
60 MethodInfo methodInfo = _methodInfo;
61 if (!TryConvertValue(value, out var convertedValue))
62 {
63 return new ValidationResult(System.SR.Format(System.SR.CustomValidationAttribute_Type_Conversion_Failed, (value != null) ? value.GetType().ToString() : "null", _firstParameterType, ValidatorType, Method));
64 }
65 try
66 {
67 object[] parameters = ((!_isSingleArgumentMethod) ? new object[2] { convertedValue, validationContext } : new object[1] { convertedValue });
68 ValidationResult validationResult = (ValidationResult)methodInfo.Invoke(null, parameters);
69 _lastMessage = null;
70 if (validationResult != null)
71 {
72 _lastMessage = validationResult.ErrorMessage;
73 }
74 return validationResult;
75 }
77 {
78 throw ex.InnerException;
79 }
80 }
Exception? InnerException
Definition Exception.cs:104
object? Invoke(object? obj, object?[]? parameters)
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string CustomValidationAttribute_Type_Conversion_Failed
Definition SR.cs:36
Definition SR.cs:7

References System.ComponentModel.DataAnnotations.CustomValidationAttribute._firstParameterType, System.ComponentModel.DataAnnotations.CustomValidationAttribute._isSingleArgumentMethod, System.ComponentModel.DataAnnotations.CustomValidationAttribute._lastMessage, System.ComponentModel.DataAnnotations.CustomValidationAttribute._methodInfo, System.SR.CustomValidationAttribute_Type_Conversion_Failed, System.ComponentModel.DataAnnotations.ValidationResult.ErrorMessage, System.SR.Format(), System.Exception.InnerException, System.Reflection.MethodBase.Invoke(), System.ComponentModel.DataAnnotations.CustomValidationAttribute.Method, System.ComponentModel.DataAnnotations.CustomValidationAttribute.ThrowIfAttributeNotWellFormed(), System.ComponentModel.DataAnnotations.CustomValidationAttribute.TryConvertValue(), System.ComponentModel.DataAnnotations.CustomValidationAttribute.ValidatorType, and System.value.