Browse Source

Resolved #1498: Set IServiceProvider in ValidationContext.

pull/1649/head
Halil İbrahim Kalkan 7 years ago
parent
commit
905baffdc6
  1. 11
      framework/src/Volo.Abp.Validation/Volo/Abp/Validation/DataAnnotationObjectValidationContributor.cs

11
framework/src/Volo.Abp.Validation/Volo/Abp/Validation/DataAnnotationObjectValidationContributor.cs

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

Loading…
Cancel
Save