FluentValidationOptionsAdapter TOptions
NexusLabs.Needlr.FluentValidation¶
FluentValidationOptionsAdapter<TOptions> Class¶
Adapts a FluentValidation FluentValidation.IValidator<> to work as an Microsoft.Extensions.Options.IValidateOptions<> for Microsoft.Extensions.Options.
public sealed class FluentValidationOptionsAdapter<TOptions> : Microsoft.Extensions.Options.IValidateOptions<TOptions>
where TOptions : class
Type parameters¶
TOptions
The options type being validated.
Inheritance System.Object 🡒 FluentValidationOptionsAdapter\<TOptions>
Implements Microsoft.Extensions.Options.IValidateOptions<TOptions>
Remarks¶
This adapter allows FluentValidation validators to be used seamlessly with
Needlr's [Options(ValidateOnStart = true)] attribute. The adapter
translates FluentValidation's FluentValidation.Results.ValidationResult into the
Microsoft.Extensions.Options.ValidateOptionsResult expected by the options framework.
Usage with Needlr source generation:
[Options("Database", ValidateOnStart = true, Validator = typeof(DatabaseOptionsValidator))]
public class DatabaseOptions { ... }
public class DatabaseOptionsValidator : AbstractValidator<DatabaseOptions>
{
public DatabaseOptionsValidator()
{
RuleFor(x => x.ConnectionString).NotEmpty();
}
}
Register the adapter in your DI container:
Constructors¶
FluentValidationOptionsAdapter(IValidator<TOptions>, string) Constructor¶
Creates a new adapter for the specified FluentValidation validator.
public FluentValidationOptionsAdapter(FluentValidation.IValidator<TOptions> validator, string? name=null);
Parameters¶
validator FluentValidation.IValidator<TOptions>
The FluentValidation validator to adapt.
name System.String
Optional name for named options validation.
Methods¶
FluentValidationOptionsAdapter<TOptions>.Validate(string, TOptions) Method¶
Validates the specified options instance.
Parameters¶
name System.String
The name of the options instance being validated.
options TOptions
The options instance to validate.
Implements Validate(string, TOptions)
Returns¶
Microsoft.Extensions.Options.ValidateOptionsResult
A Microsoft.Extensions.Options.ValidateOptionsResult indicating success or failure.