我在我的項目中使用了Fluent Validation。
在我的ViewModel中,我有一個字符串類型的屬性,有效值只是表示正整數的字符串。
所以,我創建了一個簡單的IntegerValidator
,它檢查字符串是否可以被解析爲一個整數。這工作。
問題是,如何添加它必須是正整數的規則?我想使用現有的Greater Than Validator,但將它鏈接到我的字符串屬性的規則將它作爲string
比較,而不是解析的int
。如何實現這一目標?我想做些什麼相互依賴的鏈接規則
樣品(注意ToInt()
):
RuleFor(x => x.BatchNumber).SetValidator(new IntegerValidator())
.ToInt().GreaterThan(0);
這真的很有道理!但是,我想知道ToInt的作用是什麼。正如我所看到的,它應該將'RuleBuilder'轉換成'RuleBuilder ',並確保在驗證時驗證值被轉換爲int。但是......方法鏈應該返回一個'RuleBuilder '。對?因此,必須有一種方法來指示連續的'int'規則(比如'GreaterThan')執行'int'驗證,但返回一個'string'規則構建器。我擔心這超出了FluentValidation的當前功能。 –
@GertArnold:好吧,我想,'ToInt'沒有太大意義。我其實不在乎*它將如何工作,只是*我可以使用'GreaterThan'並且將int傳遞給'GreaterThan'。 –
好的,我的主要觀點是,在目前Fluent驗證的思維模式下,它可能是概念上的問題。 –