複雑なクラス-クラス間の実装

ラジャモハン・アングチャミー

システムの詳細

  • FluentValidationバージョン:FluentValidation、バージョン= 7.0.0.0
  • Webフレームワークバージョン:ASP.NET Core 2.1

問題の説明

public class Address 
{
    public string Address { get; set; }
    public string City { get; set; }
}
public class AddressValidator : AbstractValidator<Address>
{
    public AddressValidator()
    {
        RuleFor(x => x.Address).NotEmpty().WithMessage("The Address cannot be empty.");
        RuleFor(x => x.City).NotEmpty().WithMessage("The City cannot be empty.");
    }
}
public class PersonBase
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public Address PermanentAddress { get; set; }
}
public class PersonGroupA : PersonBase
{
    public int TotalSaleCount { get; set; }
}
public class PersonGroupB : PersonBase
{
    public int TodaySaleCount { get; set; }
}
public class PersonBaseValidator : AbstractValidator<PersonBase>
{
    public PersonBaseValidator()
    {
        RuleFor(x => x.FirstName).NotEmpty().WithMessage("The First Name cannot be empty.");
        RuleFor(x => x.LastName).NotEmpty().WithMessage("The Last Name cannot be empty.");
        RuleFor(x => x.PermanentAddress).SetValidator(new AddressValidator());
    }
}

public class PersonGroupAValidator : AbstractValidator<PersonGroupA>
{
    public PersonGroupAValidator()
    {
        RuleFor(x => x.TotalSaleCount).NotEmpty().WithMessage("The Total Sale Count cannot be empty.");
    }
}

public class PersonGroupBValidator : AbstractValidator<PersonGroupB>
{
    public PersonGroupBValidator()
    {
        RuleFor(x => x.TodaySaleCount).NotEmpty().WithMessage("The Today Sale Count cannot be empty.");
    }
}

子バリデーターでベースバリデーターを使用する方法

ラジャモハン・アングチャミー

これは、以下のように追加すると機能します

public class PersonGroupAValidator : AbstractValidator<PersonGroupA> {
  public PersonGroupAValidator() {
    Include(new PersonBaseValidator());
    RuleFor(x => x.TotalSaleCount).NotEmpty().WithMessage("The Total Sale Count cannot be empty.");
  }
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

複雑なJSONの解析:複数のループとクラス

分類Dev

tensorflow:この複雑なマスク操作を実装する方法

分類Dev

`Card`クラスの実装

分類Dev

クラスJavaの実装

分類Dev

抽象クラスの実装

分類Dev

C ++クラスの実装

分類Dev

クラス図の実装

分類Dev

Javaの複雑なネストされたクラス

分類Dev

Hazelcastでの複雑なクラスのシリアル化

分類Dev

抽象クラスとしての複雑な形式のSelect2

分類Dev

MVC5複雑なクラスのフォームの作成

分類Dev

複雑なスライダーのインクリメント

分類Dev

Protegeの複雑なクラスに関する推論

分類Dev

複雑なクラスの文字列編集を許可する

分類Dev

複雑なクラスを保存するEFの方法

分類Dev

複雑なデータクラスの構築

分類Dev

複雑なジェネリッククラス宣言

分類Dev

クラス設計の複雑さ(C ++)

分類Dev

クラスカルの複雑さ

分類Dev

Python派生クラスの複雑さ

分類Dev

Swift SKSpriteNode:複雑なスプライトテクスチャ?

分類Dev

複雑さのクラスからの時間の計算

分類Dev

実際のランタイムとランタイムの複雑さの間のパラドックス

分類Dev

ヒープ実装のためのダイクストラのアルゴリズムの複雑さ

分類Dev

Javaのクラス間でロガーを実装する標準的な方法は?

分類Dev

FlutterHiveは複雑なjsonの複数のクラスを処理します

分類Dev

コンストラクタで複雑な初期化

分類Dev

複雑なJavaクラスをpl / sql関数に渡す

分類Dev

カスタムクラスの実装

Related 関連記事

ホットタグ

アーカイブ