diff --git a/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/Validation/ValidationVisitor.cs b/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/Validation/ValidationVisitor.cs index 64231e2a78..d128b04dd6 100644 --- a/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/Validation/ValidationVisitor.cs +++ b/src/Microsoft.AspNetCore.Mvc.Core/ModelBinding/Validation/ValidationVisitor.cs @@ -15,25 +15,6 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Validation /// public class ValidationVisitor { - protected IModelValidatorProvider ValidatorProvider { get; } - protected IModelMetadataProvider MetadataProvider { get; } - protected ValidatorCache Cache { get; } - protected ActionContext Context { get; } - protected ModelStateDictionary ModelState { get; } - protected ValidationStateDictionary ValidationState { get; } - protected ValidationStack CurrentPath { get; } - - protected object Container { get; set; } - protected string Key { get; set; } - protected object Model { get; set; } - protected ModelMetadata Metadata { get; set; } - protected IValidationStrategy Strategy { get; set; } - - /// - /// Indicates whether validation of a complex type should be performed if validation fails for any of its children. The default behavior is false. - /// - public bool ValidateComplexTypesIfChildValidationFails { get; set; } - /// /// Creates a new . /// @@ -74,7 +55,25 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Validation ModelState = actionContext.ModelState; CurrentPath = new ValidationStack(); } + + protected IModelValidatorProvider ValidatorProvider { get; } + protected IModelMetadataProvider MetadataProvider { get; } + protected ValidatorCache Cache { get; } + protected ActionContext Context { get; } + protected ModelStateDictionary ModelState { get; } + protected ValidationStateDictionary ValidationState { get; } + protected ValidationStack CurrentPath { get; } + protected object Container { get; set; } + protected string Key { get; set; } + protected object Model { get; set; } + protected ModelMetadata Metadata { get; set; } + protected IValidationStrategy Strategy { get; set; } + + /// + /// Indicates whether validation of a complex type should be performed if validation fails for any of its children. The default behavior is false. + /// + public bool ValidateComplexTypesIfChildValidationFails { get; set; } /// /// Validates a object. /// @@ -82,7 +81,7 @@ namespace Microsoft.AspNetCore.Mvc.ModelBinding.Validation /// The model prefix key. /// The model object. /// true if the object is valid, otherwise false. - public virtual bool Validate(ModelMetadata metadata, string key, object model) + public bool Validate(ModelMetadata metadata, string key, object model) { return Validate(metadata, key, model, alwaysValidateAtTopLevel: false); }