Gå til indholdet

Intro til FluentValidation

NuGet-pakken FluentValidation er et fleksibelt og kraftfuldt bibliotek til validering i .NET-applikationer, som lader udviklere definere valideringsregler på en klar og koncis måde. Med FluentValidation kan du let tilføje komplekse valideringslogikker til dine objekter uden at gøre din kode rodet eller svært at læse. Dette gør det ideelt for både små og store projekter, hvor vedligeholdelse og læsbarhed af kode er essentielt. I denne artikel vil vi gå igennem, hvordan du kan anvende FluentValidation i en konsolapplikation for at sikre, at dine data overholder de specificerede regler før de behandles eller gemmes.

Installation af FluentValidation

For at tage FluentValidation i brug, skal det først tilføjes til dit .NET-projekt. Det kan gøres gennem NuGet Package Manager i Visual Studio eller ved at køre nedenstående kommando i din terminal eller kommandoprompt:

dotnet add package FluentValidation

Efter installationen er du klar til at begynde at definere dine valideringsregler.

Oprettelse af Valideringsregler

Med FluentValidation defineres valideringsregler ved at oprette en klasse, der nedarver fra AbstractValidator<T>, hvor T er typen af det objekt, du ønsker at validere. Her er et simpelt eksempel på, hvordan en validator for en brugerklasse (User) kunne se ud:

using FluentValidation;

public class UserValidator : AbstractValidator<User>
{
    public UserValidator()
    {
        RuleFor(user => user.Name).NotEmpty().WithMessage("Navn må ikke være tomt");
        RuleFor(user => user.Email).NotEmpty().EmailAddress().WithMessage("Ugyldig e-mail adresse");
        RuleFor(user => user.Age).InclusiveBetween(18, 99).WithMessage("Alder skal være mellem 18 og 99");
    }
}

Validering af Objekter

Når dine valideringsregler er defineret, kan du validere objekter ved at oprette en instans af din validator og kalde Validate metoden med objektet som argument. Hvis objektet ikke overholder de definerede regler, vil resultatet indeholde en liste over fejl.

Her er et eksempel på, hvordan et User objekt valideres:

var user = new User 
{
    Name = "John Doe",
    Email = "john.doe@example.com",
    Age = 25
};

var validator = new UserValidator();
var result = validator.Validate(user);

if (!result.IsValid)
{
    foreach (var failure in result.Errors)
    {
        Console.WriteLine($"Property {failure.PropertyName} failed validation. Error was: {failure.ErrorMessage}");
    }
}
else
{
    Console.WriteLine("User is valid");
}

Avancerede Scenarier

FluentValidation understøtter en lang række funktioner for mere avancerede valideringsscenarier, såsom tilstandsbetingede regler, brugerdefinerede valideringsmetoder, gruppevalidering, og meget mere. Dette giver dig stor fleksibilitet til at dække næsten enhver valideringsbehov du måtte have i dine applikationer.

FluentValidation er et kraftfuldt værktøj for .NET-udviklere, der kræver robust valideringslogik i deres applikationer. Med dens fleksible og udtryksfulde syntax kan komplekse valideringsregler defineres og vedligeholdes med minimal indsats. Ved at integrere FluentValidation i dine udviklingsprocesser, kan du sikre, at dine data er korrekte og valide, hvilket fører til mere stabile og pålidelige applikationer.