0Pricing
C# Academy · Lektion

FluentValidation-Regeln

Schreiben Sie ausdrucksstarke Validatoren mit flüssiger Syntax.

FluentValidation-Regeln ist eine kostenlose C# Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C# Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C# Academy-Kurs umfasst insgesamt 4 Lektionen.

Warum FluentValidation?

FluentValidation ist eine beliebte .NET-Bibliothek, die Validierungsregeln aus Ihren Modellen in eigene Validator-Klassen verschiebt. Die Regeln werden über eine gut lesbare, verkettbare (fluent) API ausgedrückt, wodurch Modelle übersichtlich und Regeln testbar bleiben.

dotnet add package FluentValidation
dotnet add package FluentValidation.DependencyInjectionExtensions

Die Basisklasse AbstractValidator

Sie schreiben einen Validator, indem Sie von AbstractValidator<T> erben, wobei T das von Ihnen validierte Modell ist. Die Regeln werden im Konstruktor definiert.

using FluentValidation;

public class CustomerValidator : AbstractValidator<Customer>
{
    public CustomerValidator()
    {
        // rules go here
    }
}

Ihre erste Regel mit RuleFor definieren

RuleFor wählt über einen Lambda-Ausdruck eine Eigenschaft aus. Anschließend verketten Sie Validatoren damit. NotEmpty() lehnt null, leere Zeichenfolgen und Standardwerte ab.

public class CustomerValidator : AbstractValidator<Customer>
{
    public CustomerValidator()
    {
        RuleFor(c => c.Name).NotEmpty();
    }
}

Mehrere Validatoren verketten

Jedes RuleFor kann mehrere Validatoren verketten. Sie werden der Reihe nach ausgeführt und müssen alle erfolgreich sein. Das liest sich beinahe wie ein Satz.

RuleFor(c => c.Name)
    .NotEmpty()
    .MinimumLength(2)
    .MaximumLength(50);

Integrierte Validatoren

FluentValidation enthält zahlreiche Validatoren: NotNull, NotEmpty, EmailAddress, Length, InclusiveBetween, GreaterThan, Matches (Regex) und weitere.

RuleFor(c => c.Email).NotEmpty().EmailAddress();
RuleFor(c => c.Age).InclusiveBetween(18, 120);
RuleFor(c => c.Phone).Matches(@"^\+?[0-9]{7,15}$");

Benutzerdefinierte Fehlermeldungen

Verwenden Sie WithMessage, um die Standardmeldung zu überschreiben. Sie können Platzhalter wie {PropertyName} und {PropertyValue} einsetzen.

RuleFor(c => c.Email)
    .NotEmpty().WithMessage("Email is required.")
    .EmailAddress().WithMessage("{PropertyValue} is not a valid email.");

Benutzerdefinierte Fehlercodes und Schweregrade

Zusätzlich zu Meldungen können Sie einen maschinenlesbaren WithErrorCode und einen WithSeverity (Error, Warning, Info) anfügen, damit Clients unterschiedlich darauf reagieren können.

RuleFor(c => c.Name)
    .NotEmpty()
    .WithErrorCode("NAME_REQUIRED")
    .WithSeverity(Severity.Error);

Verschachtelte Objekte validieren

Verwenden Sie SetValidator, um einen Validator für ein untergeordnetes Objekt wiederzuverwenden und die Regeln modular zu halten.

public class OrderValidator : AbstractValidator<Order>
{
    public OrderValidator()
    {
        RuleFor(o => o.Customer).SetValidator(new CustomerValidator());
    }
}

Sammlungen validieren

RuleForEach wendet Regeln auf jedes Element einer Sammlung an.

public class OrderValidator : AbstractValidator<Order>
{
    public OrderValidator()
    {
        RuleForEach(o => o.Items)
            .ChildRules(item => item.RuleFor(i => i.Quantity).GreaterThan(0));
    }
}

Einen Validator manuell ausführen

Sie können einen Validator direkt aufrufen und das Ergebnis untersuchen. ValidationResult stellt IsValid und eine Errors-Liste bereit.

var validator = new CustomerValidator();
ValidationResult result = validator.Validate(customer);

if (!result.IsValid)
{
    foreach (var error in result.Errors)
    {
        Console.WriteLine(error.PropertyName + ": " + error.ErrorMessage);
    }
}

Asynchrone Validierung

Wenn eine Regel E/A benötigt (beispielsweise eine Datenbankprüfung), verwenden Sie ValidateAsync und asynchrone Validatoren wie MustAsync, die wir in der Lektion zu benutzerdefinierten Regeln genauer betrachten.

ValidationResult result = await validator.ValidateAsync(customer);

Kurzer Check

Testen Sie Ihre Grundlagen zu FluentValidation.

Zusammenfassung

FluentValidation platziert Regeln in AbstractValidator<T>-Klassen. RuleFor zielt auf eine Eigenschaft, anschließend verketten Sie integrierte Validatoren wie NotEmpty, EmailAddress und InclusiveBetween. Passen Sie Rückmeldungen mit WithMessage, WithErrorCode und WithSeverity an, verwenden Sie Logik mit SetValidator und RuleForEach wieder und führen Sie Regeln mit Validate/ValidateAsync aus.

Häufig gestellte Fragen

Ist die Lektion „FluentValidation-Regeln“ kostenlos?

Ja — der vollständige Text von „FluentValidation-Regeln“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C# Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C# Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „FluentValidation-Regeln“?

Schreiben Sie ausdrucksstarke Validatoren mit flüssiger Syntax. Du übst C# Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um C# Academy zu starten?

Keine Vorkenntnisse erforderlich. C# Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „FluentValidation-Regeln“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser C# Academy-Lektion Code schreiben und ausführen?

Ja. Jede C# Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Validierung mit Data Annotations
  2. FluentValidation-Regeln
  3. Benutzerdefinierte und bedingte Regeln
  4. Validierung in APIs integrieren
← Zurück zu C# Academy