C# Academy · Ders

FluentValidation Kuralları

Akıcı söz dizimiyle ifade gücü yüksek doğrulayıcılar yazın.

2. ders / 413 adım

FluentValidation Kuralları, CoddyKit'te ücretsiz bir C# Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C# Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C# Academy kursu toplamda 4 dersten oluşur.

FluentValidation Neden?

FluentValidation, doğrulama kurallarını modellerinizden çıkarıp özel doğrulayıcı sınıflarına taşıyan popüler bir .NET kütüphanesidir. Kurallar, okunabilir ve zincirlenebilir bir API ile ifade edilir; böylece modeller temiz, kurallar da sınanabilir kalır.

dotnet add package FluentValidation
dotnet add package FluentValidation.DependencyInjectionExtensions

AbstractValidator Temel Sınıfı

AbstractValidator<T> sınıfından miras alarak bir doğrulayıcı yazarsınız; burada T, doğruladığınız modeldir. Kurallar oluşturucuda tanımlanır.

using FluentValidation;

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

RuleFor ile İlk Kuralınızı Tanımlama

RuleFor, bir lambda aracılığıyla özellik seçer; ardından doğrulayıcıları bu özelliğe zincirlersiniz. NotEmpty(), null değerleri, boş dizeleri ve varsayılan değerleri reddeder.

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

Birden Çok Doğrulayıcıyı Zincirleme

Her RuleFor birkaç doğrulayıcıyı zincirleyebilir. Bunlar sırayla çalışır ve hepsinin başarılı olması gerekir. Bu yapı neredeyse bir cümle gibi okunur.

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

Yerleşik Doğrulayıcılar

FluentValidation birçok doğrulayıcıyla birlikte gelir: NotNull, NotEmpty, EmailAddress, Length, InclusiveBetween, GreaterThan, Matches (düzenli ifade) ve daha fazlası.

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

Özel Hata İletileri

Varsayılan iletiyi geçersiz kılmak için WithMessage kullanın. {PropertyName} ve {PropertyValue} gibi yer tutucuları ara değer olarak kullanabilirsiniz.

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

Özel Hata Kodları ve Önem Düzeyi

İletilerin yanı sıra, istemcilerin farklı tepkiler vermesine yardımcı olmak için makine tarafından okunabilen bir WithErrorCode ve bir WithSeverity (Hata, Uyarı, Bilgi) ekleyebilirsiniz.

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

İç İçe Nesneleri Doğrulama

Alt nesne için bir doğrulayıcıyı yeniden kullanmak ve kuralları modüler tutmak üzere SetValidator kullanın.

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

Koleksiyonları Doğrulama

RuleForEach, kuralları bir koleksiyondaki her öğeye uygular.

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

Doğrulayıcıyı El İle Çalıştırma

Bir doğrulayıcıyı doğrudan çağırabilir ve sonucu inceleyebilirsiniz. ValidationResult, IsValid değerini ve bir Errors listesini sunar.

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

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

Asenkron Doğrulama

Bir kural girdi/çıktı gerektirdiğinde, örneğin bir veritabanı denetiminde, ValidateAsync ve MustAsync gibi asenkron doğrulayıcıları kullanın. Bunları özel kurallar dersinde inceleyeceğiz.

ValidationResult result = await validator.ValidateAsync(customer);

Hızlı Kontrol

FluentValidation temelleri konusundaki bilginizi sınayın.

Özet

FluentValidation kuralları AbstractValidator<T> sınıflarına yerleştirir. RuleFor bir özelliği hedefler; ardından NotEmpty, EmailAddress ve InclusiveBetween gibi yerleşik doğrulayıcıları zincirlersiniz. Geri bildirimi WithMessage, WithErrorCode ve WithSeverity ile özelleştirin; mantığı SetValidator ve RuleForEach ile yeniden kullanın ve kuralları Validate/ValidateAsync aracılığıyla çalıştırın.

Başlamak ücretsiz

Yapay zeka eğitmeniyle C# öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
93
Dersler
346

Sıkça Sorulan Sorular

“FluentValidation Kuralları” dersi ücretsiz mi?

Evet — “FluentValidation Kuralları” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C# Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C# Academy kursu toplamda 4 dersten oluşur.

“FluentValidation Kuralları” dersinde ne öğreneceğim?

Akıcı söz dizimiyle ifade gücü yüksek doğrulayıcılar yazın. C# Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

C# Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te C# Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“FluentValidation Kuralları” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu C# Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her C# Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Veri Açıklaması Doğrulaması
  2. FluentValidation Kuralları
  3. Özel ve Koşullu Kurallar
  4. Doğrulamayı API'lerle Tümleştirme
← C# Academy Sayfasına Dön