diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/DataAnnotationObjectValidationContributor.cs b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/DataAnnotationObjectValidationContributor.cs index 5598fe7827..797721bea3 100644 --- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/DataAnnotationObjectValidationContributor.cs +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/DataAnnotationObjectValidationContributor.cs @@ -1,3 +1,4 @@ +using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; @@ -13,10 +14,14 @@ namespace Volo.Abp.Validation { public const int MaxRecursiveParameterValidationDepth = 8; + protected IServiceProvider ServiceProvider { get; } protected AbpValidationOptions Options { get; } - public DataAnnotationObjectValidationContributor(IOptions options) + public DataAnnotationObjectValidationContributor( + IOptions options, + IServiceProvider serviceProvider) { + ServiceProvider = serviceProvider; Options = options.Value; } @@ -90,7 +95,7 @@ namespace Volo.Abp.Validation if (validatingObject is IValidatableObject validatableObject) { errors.AddRange( - validatableObject.Validate(new ValidationContext(validatableObject)) + validatableObject.Validate(new ValidationContext(validatableObject, ServiceProvider, null)) ); } } @@ -103,7 +108,7 @@ namespace Volo.Abp.Validation return; } - var validationContext = new ValidationContext(validatingObject) + var validationContext = new ValidationContext(validatingObject, ServiceProvider, null) { DisplayName = property.DisplayName, MemberName = property.Name