C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#での流暢な検証の使用とは何ですか?C#での使用方法は?


FluentValidationは、強く型付けされた検証ルールを構築するための.NETライブラリです。検証ルールを構築するために流暢なインターフェースとラムダ式を使用します。ドメインコードをクリーンアップしてよりまとまりのあるものにするだけでなく、検証ロジックを探すための単一の場所を提供するのに役立ちます

流暢な検証を利用するには、以下のパッケージをインストールする必要があります

<PackageReference Include="FluentValidation" Version="9.2.2" />

例1

static class Program {
   static void Main (string[] args) {
      List errors = new List();

      PersonModel person = new PersonModel();
      person.FirstName = "";
      person.LastName = "S";
      person.AccountBalance = 100;
      person.DateOfBirth = DateTime.Now.Date;

      PersonValidator validator = new PersonValidator();
      ValidationResult results = validator.Validate(person);

      if (results.IsValid == false) {
         foreach (ValidationFailure failure in results.Errors) {
            errors.Add(failure.ErrorMessage);
         }
      }
      foreach (var item in errors) {
         Console.WriteLine(item);
      }
      Console.ReadLine ();
   }
}

public class PersonModel {
   public string FirstName { get; set; }
   public string LastName { get; set; }
   public decimal AccountBalance { get; set; }
   public DateTime DateOfBirth { get; set; }
}

public class PersonValidator : AbstractValidator {
   public PersonValidator(){
      RuleFor(p => p.FirstName)
      .Cascade(CascadeMode.StopOnFirstFailure)
      .NotEmpty().WithMessage("{PropertyName} is Empty")
      .Length(2, 50).WithMessage("Length ({TotalLength}) of {PropertyName} Invalid")
      .Must(BeAValidName).WithMessage("{PropertyName} Contains Invalid Characters");

      RuleFor(p => p.LastName)
      .Cascade(CascadeMode.StopOnFirstFailure)
      .NotEmpty().WithMessage("{PropertyName} is Empty")
      .Length(2, 50).WithMessage("Length ({TotalLength}) of {PropertyName} Invalid")
      .Must(BeAValidName).WithMessage("{PropertyName} Contains Invalid Characters");

   }

   protected bool BeAValidName(string name) {
      name = name.Replace(" ", "");
      name = name.Replace("-", "");
      return name.All(Char.IsLetter);
   }
}

出力

First Name is Empty
Length (1) of Last Name Invalid

  1. LVFSとは何ですか?どのように使用しますか?

    Linuxをデイリードライバーのデスクトップオペレーティングシステムとして使用することには、非常に多くの複雑さが伴います。使用するハードウェアのドライバーが使用可能かどうか、使用するソフトウェアが使用可能かどうか、LinuxがActiveDirectoryなどの管理する必要のあるさまざまなセキュリティ制御のすべてと互換性があるかどうかを検討する必要があります。エンタープライズの世界で最高の地位を占めています。 ただし、他にも忘れがちなことがあります。それはファームウェアです。ファームウェアは、ハードウェア用のソフトウェアであり、ソフトウェアがドライバーの形式で対話して使用できるようにする構

  2. 内容:Steamワークショップとその使用方法

    SteamワークショップはゲームクライアントSteamの一部です。これは、ユーザーとコンテンツ作成者がお気に入りのゲームのコンテンツをアップロードおよびダウンロードできるコミュニティ主導の場所です。 Steamワークショップは、MOD、アートワーク、スキン、マップなど、さまざまなアイテムをサポートしています。 Steamワークショップの閲覧方法 このSteamコミュニティワークショップページにアクセスすると、WebブラウザでSteamワークショップにアクセスできます。または、[コミュニティ]タブの[ワークショップ]をクリックして、Steamクライアント自体からアクセスすることもできます。