0

私は、私がしなければならないいくつかの条件付き検証のために 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 条件が満たされた場合にのみ返されます。誰かが私にこれを説明してくれたり、これについてもっと読むことができるいくつかのリソースを指摘してくれたりすると、とてもありがたいです.

4

1 に答える 1

0

次の条件が満たされると、何かが返されます。

if(IsPremiumCandidateSignup && SelectedProductId < 1)

そのため、プレミアム サインアップではなく、製品が選択されていない場合、何も返されません。

于 2013-03-20T22:36:00.250 に答える