5

プロジェクトでFluent Validationを使用しています。
私のViewModelには、文字列型のプロパティがあります。有効な値は、正の整数を表す文字列のみです。
そこで、IntegerValidator文字列を整数に解析できるかどうかをチェックする単純なものを作成しました。これは機能します。
問題は、正の整数でなければならないというルールをどのように追加するかです。既存のGreater Than Validatorを使用したいのですが、それを文字列プロパティのルールにチェーンするとstring、 parsed ではなく として比較されintます。これを達成する方法は?

私がやりたいことのサンプル( に注意してくださいToInt()):

RuleFor(x => x.BatchNumber).SetValidator(new IntegerValidator())
                           .ToInt().GreaterThan(0);
4

1 に答える 1

1

いつでもカスタムメソッドを使用できます...

RuleFor(x=>x.BatchNumber).Must(BeAPositiveIntegerString);

private bool BeAPositiveIntegerString(string batchNumber)
{
    // check both parse ability and greater than (once parsed)
}

再利用性は低いですが、機能します...

于 2011-11-15T13:52:33.817 に答える