diff --git a/src/libraries/Microsoft.Extensions.Options.DataAnnotations/ref/Microsoft.Extensions.Options.DataAnnotations.cs b/src/libraries/Microsoft.Extensions.Options.DataAnnotations/ref/Microsoft.Extensions.Options.DataAnnotations.cs
index 874dd859fe83e8..90a7e45e3725c7 100644
--- a/src/libraries/Microsoft.Extensions.Options.DataAnnotations/ref/Microsoft.Extensions.Options.DataAnnotations.cs
+++ b/src/libraries/Microsoft.Extensions.Options.DataAnnotations/ref/Microsoft.Extensions.Options.DataAnnotations.cs
@@ -18,6 +18,8 @@ public partial class DataAnnotationValidateOptions<[System.Diagnostics.CodeAnaly
{
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("The implementation of Validate method on this type will walk through all properties of the passed in options object, and its type cannot be statically analyzed so its members may be trimmed.")]
public DataAnnotationValidateOptions(string? name) { }
+ [System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute("The implementation of Validate method on this type will walk through all properties of the passed in options object, and its type cannot be statically analyzed so its members may be trimmed.")]
+ public DataAnnotationValidateOptions(string? name, System.IServiceProvider? serviceProvider) { }
public string? Name { get { throw null; } }
public Microsoft.Extensions.Options.ValidateOptionsResult Validate(string? name, TOptions options) { throw null; }
}
diff --git a/src/libraries/Microsoft.Extensions.Options.DataAnnotations/src/DataAnnotationValidateOptions.cs b/src/libraries/Microsoft.Extensions.Options.DataAnnotations/src/DataAnnotationValidateOptions.cs
index 2b85690478eff2..4b9fad94bbe662 100644
--- a/src/libraries/Microsoft.Extensions.Options.DataAnnotations/src/DataAnnotationValidateOptions.cs
+++ b/src/libraries/Microsoft.Extensions.Options.DataAnnotations/src/DataAnnotationValidateOptions.cs
@@ -26,8 +26,21 @@ public class DataAnnotationValidateOptions<[DynamicallyAccessedMembers(Dynamical
[RequiresUnreferencedCode("The implementation of Validate method on this type will walk through all properties of the passed in options object, and its type cannot be " +
"statically analyzed so its members may be trimmed.")]
public DataAnnotationValidateOptions(string? name)
+ : this(name, serviceProvider: null)
+ {
+ }
+
+ ///
+ /// Initializes a new instance of .
+ ///
+ /// The name of the option.
+ /// An to be used for resolving services in .
+ [RequiresUnreferencedCode("The implementation of Validate method on this type will walk through all properties of the passed in options object, and its type cannot be " +
+ "statically analyzed so its members may be trimmed.")]
+ public DataAnnotationValidateOptions(string? name, IServiceProvider? serviceProvider)
{
Name = name;
+ _serviceProvider = serviceProvider;
}
///
@@ -35,6 +48,8 @@ public DataAnnotationValidateOptions(string? name)
///
public string? Name { get; }
+ private readonly IServiceProvider? _serviceProvider;
+
///
/// Validates a specific named options instance (or all when is null).
///
@@ -59,7 +74,7 @@ public ValidateOptionsResult Validate(string? name, TOptions options)
HashSet