私は、私がしなければならないいくつかの条件付き検証のために Validate メソッドを使用してきました。サインは
IEnumerable<ValidationResult> Validate(ValidationContext validationContext);
しかし、実装すると、すべての条件で Enumerable of Validation の結果が返されません。
ここで明らかな何かが欠落している可能性がありますが、通常、コンパイラはすべてのコードパスが値を返さないと不平を言いますが、Validate メソッドでは決してそれを行いません。
サンプル実装
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (IsPremiumCandidateSignup && SelectedProductId < 1)
{
yield return
new ValidationResult("Please choose a membership option",
new List<string> { "SelectedProductId" });
}
}
したがって、この場合、if 条件が満たされた場合にのみ返されます。誰かが私にこれを説明してくれたり、これについてもっと読むことができるいくつかのリソースを指摘してくれたりすると、とてもありがたいです.