FluentOptionsValidator TOptions
NexusLabs.Needlr.FluentValidation¶
FluentOptionsValidator<TOptions> Class¶
A convenience base class for creating Needlr-compatible validators from FluentValidation validators.
public abstract class FluentOptionsValidator<TOptions> : FluentValidation.AbstractValidator<TOptions>, NexusLabs.Needlr.Generators.IOptionsValidator<TOptions>
where TOptions : class
Type parameters¶
TOptions
The options type being validated.
Inheritance System.Object 🡒 FluentValidation.AbstractValidator<TOptions> 🡒 FluentOptionsValidator\<TOptions>
Implements NexusLabs.Needlr.Generators.IOptionsValidator<TOptions>
Remarks¶
Inherit from this class and define your validation rules in the constructor.
The resulting class can be used directly with [Options(Validator = typeof(...))].
Example:
[Options(ValidateOnStart = true, Validator = typeof(DatabaseOptionsValidator))]
public class DatabaseOptions
{
public string ConnectionString { get; set; } = "";
public int MaxConnections { get; set; } = 100;
}
public class DatabaseOptionsValidator : FluentOptionsValidator<DatabaseOptions>
{
public DatabaseOptionsValidator()
{
RuleFor(x => x.ConnectionString)
.NotEmpty()
.WithMessage("Connection string is required");
RuleFor(x => x.MaxConnections)
.InclusiveBetween(1, 1000)
.WithMessage("Max connections must be between 1 and 1000");
}
}
Explicit Interface Implementations¶
NexusLabs.Needlr.Generators.IOptionsValidator<TOptions>.Validate(TOptions) Method¶
Validates the specified options instance.
System.Collections.Generic.IEnumerable<NexusLabs.Needlr.Generators.ValidationError> NexusLabs.Needlr.Generators.IOptionsValidator<TOptions>.Validate(TOptions options);
Parameters¶
options TOptions
The options instance to validate.
Implements Validate(TOptions)