Skip to content

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)