// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; using Microsoft.AspNetCore.Mvc.ModelBinding.Validation; namespace Microsoft.AspNetCore.Mvc.DataAnnotations.Internal { /// /// A default implementation of . /// /// /// The provides validators from /// instances in . /// public class DefaultClientModelValidatorProvider : IClientModelValidatorProvider { /// public void CreateValidators(ClientValidatorProviderContext context) { if (context == null) { throw new ArgumentNullException(nameof(context)); } // Perf: Avoid allocations for (var i = 0; i < context.Results.Count; i++) { var validatorItem = context.Results[i]; // Don't overwrite anything that was done by a previous provider. if (validatorItem.Validator != null) { continue; } var validator = validatorItem.ValidatorMetadata as IClientModelValidator; if (validator != null) { validatorItem.Validator = validator; validatorItem.IsReusable = true; } } } } }